配置主从复制需准备两台mysql服务器,确保版本兼容、网络互通及主库开启binlog;2. 主库配置server-id、log-bin等参数,创建复制用户并记录SHOW MASTER STATUS的File和position;3. 从库设置server-id、relay-log等,导入主库数据后执行CHANGE MASTER TO指向主库,启动复制链路,实现数据实时同步与灾备。

MySQL通过主从复制实现灾备是一种常见且高效的方式。它能将主库的数据实时同步到一个或多个从库,一旦主库出现故障,可快速切换到从库继续提供服务,保障业务连续性。下面介绍具体的配置方法和关键注意事项。
1. 确认主从服务器环境
灾备的基础是搭建主从复制架构。需要准备两台MySQL服务器:一台作为主库(Master),另一台作为从库(Slave)。
确保以下条件满足:
- 主从服务器使用相同或兼容的MySQL版本
- 网络互通,从库能访问主库的3306端口
- 主库开启二进制日志(binlog),这是复制的核心
2. 配置主库(Master)
编辑主库的my.cnf(或my.ini)配置文件,添加以下内容:
[mysqld]
server-id=1
log-bin=mysql-bin
binlog-format=ROW
expire_logs_days=7
重启MySQL服务使配置生效。然后创建用于复制的账号:
CREATE USER ‘repl’@’%’ IDENTIFIED BY ‘repl_password‘;
GRANT REPLICATION SLAVE ON *.* TO ‘repl’@’%’;
FLUSH PRIVILEGES;
记录当前主库的binlog位置,用于从库初始化:
SHOW MASTER STATUS;
记下File和Position值,后续会用到。
3. 配置从库(Slave)
修改从库的配置文件:
[mysqld]
server-id=2
relay-log=relay-bin
log-slave-updates=1
read-only=1
重启从库MySQL服务。导入主库当前数据(建议使用mysqldump):
mysqldump -u root -p –all-databases –master-data=2 > backup.sql
将备份文件导入从库:
mysql -u root -p
在从库执行CHANGE MASTER命令,连接主库:
CHANGE MASTER TO
MASTER_HOST=’主库IP’,
MASTER_USER=’repl’,
MASTER_PASSword=’repl_password’,
MASTER_LOG_FILE=’mysql-bin.000001′,
MASTER_LOG_POS=154;
START SLAVE;
其中MASTER_LOG_FILE和MASTER_LOG_POS使用之前SHOW MASTER STATUS的结果。
4. 验证复制状态与监控
查看从库复制是否正常运行:
SHOW SLAVE STATUSG
重点关注以下字段:
- Slave_IO_Running: 应为Yes,表示IO线程正常拉取日志
- Slave_SQL_Running: 应为Yes,表示SQL线程正常应用日志
- Seconds_Behind_Master: 显示延迟秒数,应接近0
定期检查该状态,确保灾备链路稳定。
当主库发生故障时,可手动将从库提升为主库(执行STOP SLAVE; RESET SLAVE ALL;),并重新配置应用连接。也可结合MHA、Orchestrator等工具实现自动故障转移。
基本上就这些。关键是保证网络稳定、权限正确、数据一致,并做好定期演练。不复杂但容易忽略细节。