在阿里云服务器上安装 MySQL 和 Redis,主要有三种常见方案:使用云数据库服务(推荐)、使用 Docker 容器化部署、以及直接通过包管理器安装。
为了帮助你做出选择,我将分别介绍这三种方案的优缺点及具体操作步骤。
方案一:使用阿里云原生云数据库(最推荐)
对于生产环境或希望省心运维的用户,直接使用阿里云提供的 RDS (MySQL) 和 Redis 实例 是最佳选择。
- 优点:高可用架构(主备/集群)、自动备份、监控告警、安全组隔离、无需维护底层系统补丁。
- 缺点:需要额外付费(按量付费或包年包月),数据存储在独立节点而非 ECS 本地。
- 操作简述:
- 登录阿里云控制台。
- 进入“云数据库 RDS"或“云数据库 Redis 版”。
- 点击“创建实例”,选择版本(如 MySQL 8.0, Redis 6.0)和规格。
- 创建完成后,获取连接地址、账号和密码,直接在应用配置中填入即可。
方案二:Docker 容器化部署(灵活、易管理)
如果你必须在自己的 ECS 上运行,但希望环境隔离且易于升级,Docker 是首选。
1. 安装 Docker 和 Docker Compose
# 更新系统
sudo yum update -y # CentOS/RHEL
# 或
sudo apt update -y # Ubuntu/Debian
# 安装 Docker (以 CentOS 为例)
sudo yum install -y docker-ce docker-ce-cli containerd.io
sudo systemctl start docker
sudo systemctl enable docker
# 安装 Docker Compose (如果未预装)
sudo curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
2. 创建项目目录并编写 docker-compose.yml
mkdir my-stack && cd my-stack
vim docker-compose.yml
粘贴以下内容(根据需求调整镜像版本):
version: '3.8'
services:
mysql:
image: mysql:8.0
container_name: mysql-container
restart: always
environment:
MYSQL_ROOT_PASSWORD: your_strong_password
MYSQL_DATABASE: test_db
ports:
- "3306:3306"
volumes:
- mysql_data:/var/lib/mysql
networks:
- app-net
command: --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
redis:
image: redis:7-alpine
container_name: redis-container
restart: always
ports:
- "6379:6379"
volumes:
- redis_data:/data
networks:
- app-net
command: redis-server --appendonly yes --requirepass your_redis_password
volumes:
mysql_data:
redis_data:
networks:
app-net:
3. 启动服务
docker-compose up -d
注意:如果是生产环境,务必修改
MYSQL_ROOT_PASSWORD和requirepass为强密码,并在阿里云控制台的安全组中放行 3306 和 6379 端口(仅允许特定 IP 访问更安全)。
方案三:直接通过包管理器安装(传统方式)
适合学习测试或无法使用 Docker 的老旧系统环境。
1. 安装 MySQL
CentOS 7+:
# 安装 YUM 源 (示例)
sudo yum install -y https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm
sudo yum install -y mysql-community-server
sudo systemctl start mysqld
sudo systemctl enable mysqld
# 查看初始密码
sudo grep 'temporary password' /var/log/mysqld.log
Ubuntu 20.04+:
sudo apt update
sudo apt install -y mysql-server
sudo systemctl start mysql
sudo systemctl enable mysql
# 运行安全脚本设置密码
sudo mysql_secure_installation
2. 安装 Redis
CentOS 7+:
sudo yum install -y epel-release
sudo yum install -y redis
sudo systemctl start redis
sudo systemctl enable redis
# 编辑配置文件设置密码
sudo vim /etc/redis.conf
# 找到 requirepass 行,取消注释并设置密码,例如:requirepass your_password
sudo systemctl restart redis
Ubuntu 20.04+:
sudo apt update
sudo apt install -y redis-server
sudo systemctl start redis-server
sudo systemctl enable redis-server
# 编辑配置文件
sudo vim /etc/redis/redis.conf
# 取消 requirepass 注释并设置密码
sudo systemctl restart redis-server
⚠️ 关键安全提示(无论哪种方案)
在将数据库暴露在公网之前,请务必检查以下两点:
-
阿里云安全组配置:
- 登录 ECS 控制台 -> 实例详情 -> 安全组。
- 确保入方向规则中,3306 (MySQL) 和 6379 (Redis) 端口不要设置为
0.0.0.0/0(即不要对所有 IP 开放)。 - 建议:仅开放给应用服务器的内网 IP,或者开发机的公网 IP。
-
绑定密码与授权:
- MySQL 默认 root 用户禁止远程登录,需手动授权。
- Redis 默认无密码保护,必须设置
requirepass并关闭bind 0.0.0.0的监听风险(建议绑定 localhost 或指定 IP)。
总结建议
| 场景 | 推荐方案 | 理由 |
|---|---|---|
| 生产环境 / 企业级 | 方案一 (云数据库) | 稳定性最高,无需运维,自动容灾。 |
| 个人项目 / 微服务 / 快速迭代 | 方案二 (Docker) | 环境隔离,迁移方便,不污染宿主机系统。 |
| 特殊定制需求 / 老旧系统 | 方案三 (直接安装) | 兼容性好,可深度定制配置文件。 |
如果你不确定如何选择,通常建议先尝试 Docker 方案,既保留了控制权,又比直接安装更规范;如果业务开始增长,再迁移到阿里云原生的 RDS/Redis 服务。
云知识CLOUD