在阿里云上搭建高可用的 MySQL 数据库,可以通过多种方式实现,以确保数据库具备高可用性、可扩展性和数据安全。以下是几种主流方案和详细步骤:
一、推荐方案:使用阿里云 RDS(推荐新手/企业级应用)
✅ 方案优势:
- 免运维,自动备份、监控、故障切换
- 支持主备架构(高可用版)
- 自动主从同步、故障自动切换(30秒内)
- 支持读写分离
- 支持跨可用区部署
📌 搭建步骤:
-
登录阿里云控制台
- 访问 https://rds.console.aliyun.com
-
创建 RDS 实例
- 地域选择靠近用户的位置
- 实例类型:选择「高可用版」
- 引擎:MySQL(建议 5.7 或 8.0)
- 规格:根据业务需求选择 CPU 和内存
- 存储类型:SSD 云盘(推荐)
- 网络类型:专有网络 VPC(更安全)
-
配置高可用架构
- 主实例 + 备实例(默认跨可用区部署)
- 启用「自动故障切换」
-
设置白名单
- 将需要访问数据库的应用服务器 IP 加入白名单
-
创建数据库与账号
- 在 RDS 控制台创建数据库和用户,并授权
-
连接数据库
- 使用内网地址连接(若 ECS 与 RDS 在同一 VPC)
- X_X地址用于调试(不建议长期使用)
-
启用备份与监控
- 设置自动备份策略(建议每天一次,保留7天以上)
- 开启性能监控与告警
✅ 优点:简单、稳定、适合大多数生产环境。
二、自建 MySQL 高可用集群(适用于高级用户)
方案组合:ECS + Keepalived + MySQL 主从复制 + MHA 或 MGR
架构设计:
- 两台或多台 ECS 实例部署 MySQL
- 主从复制(Master-Slave)
- 使用 MHA(Master High Availability)或 MySQL Group Replication(MGR)实现自动故障转移
- Keepalived 提供虚拟 IP(VIP),实现客户端无感知切换
🔧 步骤概览:
1. 创建 ECS 实例(至少2台)
- 操作系统:CentOS 7/8 或 Ubuntu 20.04
- 安全组:开放 3306、心跳检测端口(如 6000)、SSH
- 建议使用 SSD 云盘
2. 安装 MySQL 并配置主从复制
# 安装 MySQL(以 CentOS 为例)
sudo yum install mysql-server
主库配置(my.cnf):
server-id = 1
log-bin = mysql-bin
binlog-format = ROW
从库配置:
server-id = 2
relay-log = mysql-relay-bin
read-only = 1
配置主从同步(CHANGE MASTER TO ...),并启动复制。
3. 部署 MHA(Master HA)实现自动切换
- 安装 MHA Node 和 Manager
- 配置
app1.cnf指定主从关系 - 设置免密 SSH 登录
- 测试故障转移
⚠️ MHA 已不再积极维护,建议考虑 MGR 或 Orchestrator 替代。
4. 使用 Keepalived 实现 VIP 漂移
- 安装 Keepalived
- 配置主节点为 MASTER,从节点为 BACKUP
- 绑定虚拟 IP(如 192.168.1.100)
- 应用连接该 VIP,无需修改配置
vrrp_instance VI_1 {
state MASTER
interface eth0
virtual_router_id 51
priority 100
advert_int 1
virtual_ipaddress {
192.168.1.100/24
}
}
5. 监控与告警
- 使用 Prometheus + Grafana 监控 MySQL 状态
- 配置阿里云云监控告警
三、使用 MySQL Group Replication(MGR)——官方推荐高可用方案
特点:
- 基于 Paxos 协议,强一致性
- 支持多主或单主模式
- 内置于 MySQL 5.7.17+(建议 8.0)
架构:
- 至少 3 个节点组成复制组
- 自动选主、自动恢复
步骤简述:
- 所有节点启用 binlog、gtid、log-slave-updates
- 安装组复制插件:
INSTALL PLUGIN group_replication - 配置种子节点并启动组
- 其他节点加入组
- 使用 ProxySQL 或 MySQL Router 实现负载均衡和故障转移
四、增强方案(可选)
| 功能 | 实现方式 |
|---|---|
| 读写分离 | 使用 RDS 读写分离地址 / ProxySQL / MySQL Router |
| 负载均衡 | SLB(仅连接池)或应用层路由 |
| 数据备份 | RDS 自动备份 + OSS 归档 |
| 安全防护 | SSL 加密、VPC 隔离、RAM 权限控制 |
| 灾备 | 跨地域备份(RDS 可开启异地灾备) |
五、成本对比
| 方案 | 成本 | 运维难度 | 推荐场景 |
|---|---|---|---|
| RDS 高可用版 | 中等 | 低 | 企业生产环境 |
| 自建 + MHA | 较低 | 高 | 技术团队强,需定制化 |
| MGR 集群 | 中高 | 高 | 高一致性要求系统 |
✅ 最佳实践建议
- 优先使用阿里云 RDS 高可用版,除非有特殊定制需求。
- 开启自动备份和日志备份。
- 使用 VPC 网络隔离,避免公网暴露。
- 定期演练故障切换。
- 监控慢查询、连接数、CPU/IO 使用率。
📞 阿里云相关产品链接
- RDS for MySQL: https://www.aliyun.com/product/rds/mysql
- ECS: https://www.aliyun.com/product/ecs
- 云监控: https://www.aliyun.com/product/cloudmonitor
如需我提供 具体配置文件模板(如 my.cnf、keepalived.conf、MHA 配置)或 自动化部署脚本,欢迎继续提问!
ECLOUD博客