在阿里云服务器上同时运行 MySQL 和 Redis 是非常常见的需求。以下是详细的步骤和最佳实践,帮助你安全、高效地在同一台 ECS 实例上部署并管理这两个数据库服务。
✅ 一、准备工作
1. 购买并登录阿里云 ECS 实例
- 选择合适的实例规格(建议至少 2核4G,尤其是要运行多个数据库)。
- 操作系统推荐:Ubuntu 20.04/22.04 或 CentOS 7/8。
- 确保安全组开放必要的端口(见下文)。
✅ 二、安装与配置 MySQL
1. 安装 MySQL(以 Ubuntu 为例)
# 更新软件包
sudo apt update
# 安装 MySQL 服务器
sudo apt install mysql-server -y
# 启动并设置开机自启
sudo systemctl start mysql
sudo systemctl enable mysql
2. 安全初始化(推荐)
sudo mysql_secure_installation
- 设置 root 密码
- 移除匿名用户
- 禁止远程 root 登录(生产环境建议)
- 删除测试数据库
3. 配置远程访问(可选)
编辑配置文件(如需远程连接):
sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf
修改:
bind-address = 0.0.0.0
然后重启 MySQL:
sudo systemctl restart mysql
⚠️ 注意:开放远程访问时,务必配置阿里云 安全组规则 允许 3306 端口,并使用强密码或 SSH 隧道更安全。
✅ 三、安装与配置 Redis
1. 安装 Redis
sudo apt install redis-server -y
2. 启动并设置开机自启
sudo systemctl start redis-server
sudo systemctl enable redis-server
3. 配置 Redis(关键安全设置)
编辑配置文件:
sudo nano /etc/redis/redis.conf
常用修改项:
# 绑定地址(若允许远程访问)
bind 0.0.0.0
# 启用密码认证(强烈建议)
requirepass your_strong_password
# 后台运行(守护进程模式)
daemonize yes
# 日志文件路径(可选)
logfile /var/log/redis/redis-server.log
# 数据持久化(根据需要开启 RDB/AOF)
save 900 1
save 300 10
save 60 10000
重启 Redis 生效:
sudo systemctl restart redis-server
✅ 四、阿里云安全组配置
进入 阿里云控制台 > ECS > 安全组 > 配置规则
添加入方向规则(按需开放):
| 协议 | 端口范围 | 授权对象 | 说明 |
|---|---|---|---|
| TCP | 3306 | 0.0.0.0/0 或指定 IP | MySQL 远程访问 |
| TCP | 6379 | 0.0.0.0/0 或指定 IP | Redis 远程访问 |
🔐 建议:生产环境不要对 0.0.0.0/0 开放,只允许信任的 IP 或通过跳板机访问。
✅ 五、验证服务运行状态
# 查看 MySQL 状态
sudo systemctl status mysql
# 查看 Redis 状态
sudo systemctl status redis-server
# 测试连接 MySQL
mysql -u root -p
# 测试连接 Redis
redis-cli ping
# 若设置了密码:redis-cli -a your_password ping
✅ 六、资源监控与优化
1. 查看内存和 CPU 使用情况
htop # 或 top
free -h # 查看内存
df -h # 查看磁盘
2. 优化建议
- MySQL:调整
innodb_buffer_pool_size(建议为内存的 50%~70%) - Redis:设置最大内存限制,避免 OOM
在 /etc/redis/redis.conf 中添加:
maxmemory 1gb
maxmemory-policy allkeys-lru
✅ 七、备份与安全建议
1. 定期备份
- MySQL:使用
mysqldump或 XtraBackup - Redis:启用 RDB 快照或 AOF,定期复制 dump.rdb 文件
2. 安全加固
- 关闭不必要的服务
- 使用非默认端口(可选)
- 使用 SSH 隧道连接数据库(比直接开放端口更安全)
- 定期更新系统和软件包
✅ 八、进阶方案(推荐生产环境)
| 方案 | 说明 |
|---|---|
| 分开部署 | 将 MySQL 和 Redis 部署在不同 ECS 实例,提高稳定性和性能 |
| 使用云数据库 | 使用阿里云 RDS(MySQL)和云数据库 Redis 版,减轻运维压力 |
| Docker 部署 | 使用 Docker 分别运行 MySQL 和 Redis 容器,便于管理 |
示例 Docker 启动命令:
# 启动 MySQL
docker run -d --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql:8.0
# 启动 Redis
docker run -d --name redis -p 6379:6379 redis:7 --requirepass "yourpassword"
✅ 总结
✅ 你可以在同一台阿里云 ECS 上成功运行 MySQL 和 Redis,只需:
- 正确安装两个服务
- 合理配置绑定地址和密码
- 开放安全组端口
- 监控资源使用,避免内存不足
- 加强安全措施(密码、IP 限制等)
📌 推荐:开发/测试环境可共用一台服务器;生产环境建议分离部署或使用阿里云托管数据库服务。
如有具体操作系统或问题,欢迎提供更多信息,我可以给出更精准的配置。
云小栈