在阿里云 ECS 上安装 MySQL 和 Redis 主要有三种方式:官方推荐(云数据库 RDS/Redis)、手动安装(Docker 或源码/包管理)、以及使用镜像一键部署。
对于生产环境,强烈建议使用阿里云原生的 云数据库 RDS for MySQL 和 云数据库 Redis 版,因为它们提供高可用、自动备份、监控告警和弹性扩容。但如果你需要自己管理数据(例如为了学习、特定配置或成本考量),以下是手动安装的详细步骤。
方案一:手动安装(适用于学习、测试或特定架构需求)
假设你使用的是 CentOS 7/8 或 Ubuntu 20.04/22.04 系统。
1. 前置准备:安全组配置
在服务器内部安装软件前,必须先开放端口,否则无法连接。
- 登录阿里云控制台 -> 云服务器 ECS -> 实例 -> 安全组。
- 添加入方向规则:
- MySQL: 端口
3306(协议 TCP) - Redis: 端口
6379(协议 TCP) - 注意:生产环境建议限制来源 IP,不要对所有 IP (
0.0.0.0) 开放。
- MySQL: 端口
2. 安装 MySQL
以 Ubuntu 为例:
# 更新源
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 为例:
# 安装 yum-utils
sudo yum install yum-utils -y
# 添加 MySQL YUM 仓库 (根据版本选择)
sudo yum-config-manager --add-repo https://dev.mysql.com/get/mysql80-community-release-el7-1.noarch.rpm
# 安装 MySQL Server
sudo yum install mysql-server -y
# 启动服务
sudo systemctl start mysqld
sudo systemctl enable mysqld
# 获取临时 root 密码
sudo grep 'temporary password' /var/log/mysqld.log
验证安装:
mysql -u root -p
3. 安装 Redis
以 Ubuntu/CentOS 为例(使用包管理器):
# Ubuntu
sudo apt install redis-server -y
sudo systemctl start redis-server
sudo systemctl enable redis-server
# CentOS (可能需要先安装 EPEL 或手动编译,这里演示简单安装)
sudo yum install epel-release -y
sudo yum install redis -y
sudo systemctl start redis
sudo systemctl enable redis
验证安装:
redis-cli ping
# 输出:PONG 表示成功
4. 关键配置(必须修改)
默认情况下,MySQL 和 Redis 可能只监听本地 (127.0.0.1),或者未设置密码。
MySQL 配置 (/etc/mysql/mysql.conf.d/mysqld.cnf 或 /etc/my.cnf):
[mysqld]
# 允许远程连接(生产环境请绑定具体 IP 或内网段)
bind-address = 0.0.0.0
# 字符集设置
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci
修改后需重启:sudo systemctl restart mysql
Redis 配置 (/etc/redis/redis.conf):
# 1. 绑定地址(允许外部访问)
bind 0.0.0.0
# 2. 关闭保护模式(如果绑定了 IP 且设置了密码,可保持开启;若仅内网测试可设为 no)
protected-mode no
# 3. 设置密码(非常重要!)
requirepass your_strong_password_here
# 4. 后台运行
daemonize yes
修改后需重启:sudo systemctl restart redis-server
方案二:使用 Docker 安装(推荐用于快速部署)
如果你已经安装了 Docker,这是最干净、隔离性最好的方式。
# 1. 拉取并启动 MySQL
docker run --name my-mysql
-e MYSQL_ROOT_PASSWORD=your_root_password
-p 3306:3306
-v /data/mysql:/var/lib/mysql
-d mysql:8.0
# 2. 拉取并启动 Redis
docker run --name my-redis
-p 6379:6379
-v /data/redis:/data
-d redis:alpine
redis-server --appendonly yes --requirepass your_redis_password
注意:同样需要在阿里云安全组开放 3306 和 6379 端口。
方案三:使用阿里云镜像(最简单)
阿里云市场提供了一键部署的镜像,包含 Nginx + PHP/Java + MySQL + Redis。
- 创建 ECS 时,在“镜像”选择页面搜索 “宝塔” 或 "LNMP/LAMP"。
- 购买后通过 SSH 登录,按照面板提示即可一键安装所有组件。
- 缺点:通常占用较多资源,且不如原生安装灵活,适合新手快速搭建。
⚠️ 重要安全与运维建议
无论采用哪种方式,请务必遵守以下原则:
-
禁止公网直接暴露数据库:
- 最佳实践:后端应用和数据库部署在同一 VPC 下。应用通过内网 IP 连接数据库,不要将 3306/6379 端口对公网开放。
- 如果必须网络访问(如开发调试),务必配合白名单和强密码,并尽快关闭。
-
数据持久化:
- 如果使用容器或手动安装,务必挂载宿主机目录(如
/data/mysql,/data/redis)到容器内部,防止容器删除导致数据丢失。 - 配置定时备份脚本(mysqldump, redis-save)。
- 如果使用容器或手动安装,务必挂载宿主机目录(如
-
性能优化:
- 根据 ECS 的内存大小,合理调整
my.cnf中的innodb_buffer_pool_size和redis.conf中的maxmemory。 - 开启 Redis 的 AOF 持久化或 RDB 快照。
- 根据 ECS 的内存大小,合理调整
-
关于云原生产品(RDS/Redis):
- 如果你的业务涉及核心数据,强烈建议放弃自建,直接使用阿里云 RDS MySQL 和 Redis 版。
- 优势:无需维护主从切换、自动故障转移、自带 DTS 数据迁移、按量付费更灵活,且内网带宽免费。
你需要我针对特定的操作系统(如 CentOS 或 Ubuntu)提供更详细的配置文件示例吗?
云知识CLOUD