在阿里云 ECS 上安装 MySQL 和 Redis 作为后端数据库,通常有两种主流方案:
- 使用阿里云托管服务(推荐):直接使用 RDS for MySQL 和云数据库 Redis 版。
- 自行在 ECS 上安装:将数据库安装在 ECS 操作系统内部。
以下是针对这两种方案的详细操作指南,重点介绍自行安装的流程(因为你的问题明确提到“在 ECS 服务器安装”),同时也会简要说明为何推荐托管服务。
方案一:在 ECS 上自行安装(适合学习、测试或特定架构需求)
此方案需要你在 ECS 的 Linux 系统(以 CentOS/Alibaba Cloud Linux 为例)中通过命令行进行安装和配置。
1. 前置准备
- 安全组配置:登录阿里云控制台 -> 云服务器 ECS -> 实例详情 -> 安全组。
- 确保放行了
3306(MySQL) 和6379(Redis) 端口。 - 注意:如果是生产环境,建议仅允许应用服务器的 IP 访问这两个端口,不要对
0.0.0.0/0开放,以防被扫描攻击。
- 确保放行了
- 连接服务器:使用 SSH 工具(如 Xshell, Putty, Terminal)登录 ECS。
2. 安装 MySQL
这里以 CentOS 7/8 或 Alibaba Cloud Linux 为例,使用官方 YUM 源安装。
# 1. 更新系统包
sudo yum update -y
# 2. 安装 MySQL 5.7 或 8.0 (此处以 8.0 为例)
# 如果不确定源是否包含 mysql,可能需要先添加 epel 源或下载 rpm 包
# 推荐使用阿里云提供的镜像源或官方 repo
sudo yum install -y https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm
sudo yum-config-manager --disable mysql57-community
sudo yum-config-manager --enable mysql80-community
sudo yum install -y mysql-community-server
# 3. 启动并设置开机自启
sudo systemctl start mysqld
sudo systemctl enable mysqld
# 4. 获取初始 root 密码
# MySQL 安装后会在 /var/log/mysqld.log 生成一个随机密码
grep 'temporary password' /var/log/mysqld.log
# 5. 进入 MySQL 修改 root 密码并授权远程访问
mysql -u root -p
# (输入上面获取的临时密码)
# 在 MySQL 命令行中执行以下 SQL:
# 修改 root 密码 (需满足复杂度要求)
ALTER USER 'root'@'localhost' IDENTIFIED BY '你的新强密码';
# 创建允许远程连接的账号 (例如 app_user)
CREATE USER 'app_user'@'%' IDENTIFIED BY '你的应用数据库密码';
GRANT ALL PRIVILEGES ON *.* TO 'app_user'@'%';
FLUSH PRIVILEGES;
# 退出
EXIT;
3. 安装 Redis
Redis 通常需要编译安装或使用 EPEL 源安装。为了简化,我们使用 EPEL 源安装稳定版。
# 1. 安装 EPEL 源
sudo yum install -y epel-release
# 2. 安装 Redis
sudo yum install -y redis
# 3. 启动并设置开机自启
sudo systemctl start redis
sudo systemctl enable redis
# 4. 配置 Redis 允许远程连接
# 编辑配置文件
sudo vi /etc/redis.conf
# 找到并修改以下参数:
# bind 127.0.0.1 -> 改为 bind 0.0.0.0 (或者注释掉该行)
# protected-mode yes -> 改为 no (如果已做防火墙限制,可设为 no)
# requirepass '' -> 改为 requirepass 你的强密码 (例如 redis123456)
# 保存退出后重启 Redis
sudo systemctl restart redis
4. 验证安装
- MySQL:
telnet <ECS公网IP> 3306 - Redis:
telnet <ECS公网IP> 6379或在本地用客户端连接测试。
方案二:使用阿里云托管服务(强烈推荐用于生产环境)
如果你的业务是正式上线运行的,强烈不建议自己在 ECS 上手动安装数据库。原因如下:
- 高可用:托管服务默认提供主备切换、自动备份。
- 性能:独享资源,IOPS 更高。
- 运维:无需自己处理补丁升级、监控告警、扩容缩容。
- 网络:内网互通,延迟极低且安全。
操作步骤:
- 购买实例:
- 在阿里云控制台搜索 RDS MySQL。
- 选择版本(如 MySQL 8.0)、规格、存储类型(SSD)。
- 选择与 ECS 同一地域、同一 VPC。
- 购买 Redis:
- 搜索 云数据库 Redis 版。
- 选择架构(如主从版或集群版)。
- 配置白名单:
- 在 RDS/Redis 控制台的“白名单”中,添加你 ECS 实例的 私有 IP(VPC 内网 IP)。
- 这样 ECS 可以通过内网地址(如
rm-xxx.mysql.rds.aliyuncs.com或内网 IP)直接连接,速度快且安全。
- 应用连接:
- 在你的后端代码中,将数据库连接地址替换为 RDS/Redis 提供的内网地址。
总结与建议
| 特性 | 自行安装 (ECS 内) | 阿里云托管 (RDS/Redis) |
|---|---|---|
| 适用场景 | 学习、开发测试、临时项目 | 生产环境、企业级应用 |
| 维护成本 | 高 (需自己备份、打补丁、监控) | 低 (阿里云自动维护) |
| 数据安全 | 依赖个人配置,易误操作丢失 | 自动快照、多可用区容灾 |
| 网络性能 | 占用 ECS 资源,受限于单机带宽 | 独享带宽,内网高速 |
| 费用 | 仅需 ECS 费用 | 额外支付数据库实例费用 |
最终建议:
- 如果你是在学习 Linux 命令或搭建个人测试环境,请按照方案一操作。
- 如果你是为了上线运行商业项目,请直接购买阿里云的 RDS MySQL 和 云数据库 Redis 版,并在 ECS 的安全组中只放行 VPC 内网段,这是最稳妥、最高效的方式。
CLOUD技术博