在阿里云服务器上安装 MySQL 和 Redis,主要有三种方式:使用云数据库服务(RDS/Redis)、通过官方源手动安装、以及使用 Docker 容器化部署。
对于生产环境,强烈推荐使用阿里云的 PaaS 服务(RDS for MySQL 和 ApsaraDB for Redis),因为它们提供了自动备份、高可用架构、监控告警和弹性扩容功能,运维成本更低且更稳定。
如果你需要在 ECS 上自行搭建(例如为了学习、测试或特殊配置需求),以下是基于 Ubuntu 20.04/22.04 和 CentOS 7/8 的两种主流安装方案。
方案一:使用官方源手动安装(适合自建)
1. 安装 MySQL
Ubuntu/Debian 系统:
# 更新软件包索引
sudo apt update
# 安装 MySQL Server (默认会安装最新稳定版)
sudo apt install mysql-server -y
# 启动并设置开机自启
sudo systemctl start mysql
sudo systemctl enable mysql
# 安全初始化(建议运行此命令设置 root 密码等)
sudo mysql_secure_installation
CentOS/RHEL 系统:
# 安装 Yum 仓库配置 (以 CentOS 7 为例)
sudo yum install -y https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm
# 启用 MySQL 8.0 源并安装
sudo yum install -y mysql-community-server
# 启动服务
sudo systemctl start mysqld
sudo systemctl enable mysqld
# 获取临时 root 密码并修改
grep 'temporary password' /var/log/mysqld.log
mysql_secure_installation
注意:安装完成后,记得在阿里云控制台的安全组中放行 3306 端口。
2. 安装 Redis
Ubuntu/Debian 系统:
# 安装 Redis
sudo apt install redis-server -y
# 启动并设置开机自启
sudo systemctl start redis-server
sudo systemctl enable redis-server
# 验证状态
systemctl status redis-server
CentOS/RHEL 系统:
# 安装 EPEL 源 (如果未安装)
sudo yum install epel-release -y
# 安装 Redis
sudo yum install redis -y
# 启动并设置开机自启
sudo systemctl start redis
sudo systemctl enable redis
# 验证状态
systemctl status redis
注意:Redis 默认监听 6379 端口,同样需要在安全组放行。如果需要远程连接,建议修改
redis.conf中的bind 127.0.0.1为0.0.0.0,并设置requirepass密码。
方案二:使用 Docker 容器化部署(推荐用于开发/测试)
这种方式隔离性好,卸载方便,且版本切换灵活。
1. 安装 Docker
# Ubuntu
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
sudo systemctl start docker && sudo systemctl enable docker
# CentOS
sudo yum install -y docker-ce docker-ce-cli containerd.io
sudo systemctl start docker && sudo systemctl enable docker
2. 一键启动 MySQL 和 Redis
# 创建网络
docker network create my-network
# 启动 MySQL
docker run -d
--name mysql-container
--network my-network
-e MYSQL_ROOT_PASSWORD=your_strong_password
-p 3306:3306
-v /data/mysql:/var/lib/mysql
mysql:8.0
# 启动 Redis
docker run -d
--name redis-container
--network my-network
-p 6379:6379
-v /data/redis:/data
redis:latest redis-server --appendonly yes --requirepass your_redis_password
提示:将 -v 参数映射到宿主机目录,防止容器删除后数据丢失。
⚠️ 关键安全与网络配置(必读)
无论选择哪种方案,在阿里云环境下必须完成以下操作,否则无法连接或存在极大安全隐患:
-
配置安全组(防火墙)
- 登录阿里云控制台 -> 云服务器 ECS -> 实例列表 -> 点击实例 ID -> 更多 -> 网络和安全组 -> 安全组配置。
- 添加入方向规则:
- 协议:TCP,端口范围:
3306(MySQL),授权对象:0.0.0.0/0(仅测试用) 或 你的本地 IP (生产环境严禁开放给所有人)。 - 协议:TCP,端口范围:
6379(Redis),授权对象:同上。
- 协议:TCP,端口范围:
- 最佳实践:不要对公网开放这两个端口,尽量通过 SSH 隧道或内网访问。
-
修改数据库绑定地址
- MySQL: 编辑
/etc/mysql/mysql.conf.d/mysqld.cnf(Ubuntu) 或/etc/my.cnf(CentOS),找到bind-address = 127.0.0.1,将其注释掉或改为0.0.0.0。 - Redis: 编辑
/etc/redis/redis.conf,找到bind 127.0.0.1,改为bind 0.0.0.0。 - 重要:修改后务必重启服务 (
systemctl restart ...)。
- MySQL: 编辑
-
设置强密码
- 数据库默认可能没有密码或密码简单,请务必执行
mysql_secure_installation或修改配置文件设置强密码。 - Redis 必须在
redis.conf中开启requirepass <密码>。
- 数据库默认可能没有密码或密码简单,请务必执行
总结建议
| 场景 | 推荐方案 | 理由 |
|---|---|---|
| 生产环境 | 阿里云 RDS + 云 Redis | 免运维、高可用、自动备份、性能优化,虽然收费但省心。 |
| 开发/测试 | Docker 部署 | 环境隔离、版本随意切换、清理方便。 |
| 特殊定制/学习 | 手动源码/官方源安装 | 可以深入理解配置细节,适合学习 Linux 运维。 |
如果你是第一次接触,建议先尝试 Docker 方案,既快速又能避免依赖冲突问题。
云服务器