如何配置云服务器的MySQL主从复制?
常见问题
如何配置云服务器的MySQL主从复制?
2025-03-31 23:41
MySQL主从复制
MySQL主从复制配置全攻略:云服务器环境实战指南
在当今数据驱动的时代,MySQL主从复制技术已成为保障数据库高可用性的标配方案。本文将为您详细解析在云服务器环境下配置MySQL主从复制的完整流程,特别针对阿里云、腾讯云等主流云平台的特殊设置进行重点说明。
🔧 前期准备工作
- 服务器准备:建议主从服务器配置相同版本MySQL(推荐5.7+)
- 网络配置:确保主从服务器间3306端口互通(云服务器需配置安全组规则)
- 权限准备:主库需要具有REPLICATION SLAVE权限的账号
# 创建复制账号示例
CREATE USER 'repl'@'%' IDENTIFIED BY 'SecurePass123!';
GRANT REPLICATION SLAVE ON *.* TO 'repl'@'%';
⚠️ 云平台特殊注意事项
- 阿里云RDS如需配置外部的从库,需先开通外网地址
- 腾讯云CVM默认禁用bind-address,需手动修改my.cnf配置
- 华为云需要额外配置安全组入方向规则
📝 主库配置详解
1. 修改my.cnf配置文件
[mysqld]
server-id = 1 # 必须唯一
log_bin = mysql-bin # 开启二进制日志
binlog_format = ROW # 推荐使用ROW格式
binlog_do_db = 需要复制的数据库名 # 可选配置
2. 重启MySQL服务
systemctl restart mysqld
3. 锁定数据库并获取位置信息
FLUSH TABLES WITH READ LOCK;
SHOW MASTER STATUS; # 记录File和Position值
🔄 从库配置流程
1. 修改从库my.cnf
[mysqld]
server-id = 2 # 必须与主库不同
relay_log = /var/lib/mysql/mysql-relay-bin
read_only = 1 # 建议开启只读模式
2. 设置复制通道
CHANGE MASTER TO
MASTER_HOST='主库IP',
MASTER_USER='repl',
MASTER_PASSWORD='SecurePass123!',
MASTER_LOG_FILE='mysql-bin.000001', # 主库show master status结果
MASTER_LOG_POS=120; # 主库show master status结果
3. 启动复制进程
START SLAVE;
SHOW SLAVE STATUS\G # 检查Slave_IO_Running和Slave_SQL_Running状态
💡 专家级优化建议
参数
推荐值
说明
sync_binlog
1
确保binlog及时落盘
slave_parallel_workers
4-8
提升从库复制性能
binlog_group_commit_sync_delay
100
适当合并提交提升性能
🔍 常见问题排查
- Q: 从库显示Slave_IO_Running=Connecting
- ▶️ 检查:网络连通性、账号权限、防火墙设置
- Q: 出现1236错误(Got fatal error)
- ▶️ 解决方法:重新获取主库位点信息,使用CHANGE MASTER TO重置
- Q: 主从数据不一致
- ▶️ 推荐工具:pt-table-checksum + pt-table-sync
🎯 总结
通过本文详细的步骤指导,您应该已经成功在云服务器上建立了MySQL主从复制环境。记得定期检查复制状态,建议设置监控告警(如使用Prometheus+Granfa)。对于生产环境,推荐考虑更高级的GTID复制或组复制方案。
需要更详细的MySQL优化指南?点击订阅我们的数据库周刊
MySQL主从复制配置全攻略:云服务器环境实战指南
在当今数据驱动的时代,MySQL主从复制技术已成为保障数据库高可用性的标配方案。本文将为您详细解析在云服务器环境下配置MySQL主从复制的完整流程,特别针对阿里云、腾讯云等主流云平台的特殊设置进行重点说明。
🔧 前期准备工作
- 服务器准备:建议主从服务器配置相同版本MySQL(推荐5.7+)
- 网络配置:确保主从服务器间3306端口互通(云服务器需配置安全组规则)
- 权限准备:主库需要具有REPLICATION SLAVE权限的账号
# 创建复制账号示例
CREATE USER 'repl'@'%' IDENTIFIED BY 'SecurePass123!';
GRANT REPLICATION SLAVE ON *.* TO 'repl'@'%';
⚠️ 云平台特殊注意事项
- 阿里云RDS如需配置外部的从库,需先开通外网地址
- 腾讯云CVM默认禁用bind-address,需手动修改my.cnf配置
- 华为云需要额外配置安全组入方向规则
📝 主库配置详解
1. 修改my.cnf配置文件
[mysqld]
server-id = 1 # 必须唯一
log_bin = mysql-bin # 开启二进制日志
binlog_format = ROW # 推荐使用ROW格式
binlog_do_db = 需要复制的数据库名 # 可选配置
2. 重启MySQL服务
systemctl restart mysqld
3. 锁定数据库并获取位置信息
FLUSH TABLES WITH READ LOCK;
SHOW MASTER STATUS; # 记录File和Position值
🔄 从库配置流程
1. 修改从库my.cnf
[mysqld]
server-id = 2 # 必须与主库不同
relay_log = /var/lib/mysql/mysql-relay-bin
read_only = 1 # 建议开启只读模式
2. 设置复制通道
CHANGE MASTER TO
MASTER_HOST='主库IP',
MASTER_USER='repl',
MASTER_PASSWORD='SecurePass123!',
MASTER_LOG_FILE='mysql-bin.000001', # 主库show master status结果
MASTER_LOG_POS=120; # 主库show master status结果
3. 启动复制进程
START SLAVE;
SHOW SLAVE STATUS\G # 检查Slave_IO_Running和Slave_SQL_Running状态
💡 专家级优化建议
参数
推荐值
说明
sync_binlog
1
确保binlog及时落盘
slave_parallel_workers
4-8
提升从库复制性能
binlog_group_commit_sync_delay
100
适当合并提交提升性能
🔍 常见问题排查
- Q: 从库显示Slave_IO_Running=Connecting
- ▶️ 检查:网络连通性、账号权限、防火墙设置
- Q: 出现1236错误(Got fatal error)
- ▶️ 解决方法:重新获取主库位点信息,使用CHANGE MASTER TO重置
- Q: 主从数据不一致
- ▶️ 推荐工具:pt-table-checksum + pt-table-sync
🎯 总结
通过本文详细的步骤指导,您应该已经成功在云服务器上建立了MySQL主从复制环境。记得定期检查复制状态,建议设置监控告警(如使用Prometheus+Granfa)。对于生产环境,推荐考虑更高级的GTID复制或组复制方案。
需要更详细的MySQL优化指南?点击订阅我们的数据库周刊
标签:
- MySQL主从复制
- 云服务器配置
- 数据库高可用性
- 莱卡云
