搭建MySQL主从复制需配置主库开启binlog并创建复制账号,从库设置唯一server-id后通过CHANGE MASTER TO连接主库,启动复制线程并检查Slave_IO_Running和Slave_SQL_Running为Yes以确保同步正常。

搭建MySQL主从复制环境能实现数据的实时同步,提升系统可用性和读写性能。关键步骤包括配置主库(Master)和从库(Slave),确保网络互通,并正确设置权限与日志。
1. 配置主库(Master)
主库需要开启二进制日志(binlog),并设置唯一的server-id,用于记录数据变更。
[mysqld]
server-id = 1
log-bin = mysql-bin
binlog-format = ROW
- 重启MySQL服务使配置生效:
systemctl restart mysqld
- 登录MySQL,创建用于主从复制的账号并授权:
CREATE USER ‘repl’@’%’ IDENTIFIED BY ‘your_password‘;
GRANT REPLICATION SLAVE ON *.* TO ‘repl’@’%’;
FLUSH PRIVILEGES;
- 查看主库当前binlog状态,记录File和Position,后续从库配置需要使用:
SHOW MASTER STATUS;
2. 配置从库(Slave)
从库同样需要设置唯一的server-id,不能与主库重复,并指定连接主库的信息。
- 编辑从库的my.cnf文件:
[mysqld]
server-id = 2
- 重启从库MySQL服务:
systemctl restart mysqld
- 在从库中执行CHANGE MASTER TO命令,配置主从连接信息:
CHANGE MASTER TO
MASTER_HOST=’主库IP地址’,
MASTER_USER=’repl’,
MASTER_PASSWORD=’your_password’,
MASTER_LOG_FILE=’mysql-bin.000001′,
MASTER_LOG_POS= 154;
- 启动从库复制线程:
START SLAVE;
3. 检查复制状态
确认主从复制是否正常运行,重点关注两个指标:IO线程和SQL线程是否为Running状态。
- 执行以下命令查看从库状态:
SHOW SLAVE STATUSG
- 检查关键字段:
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
若均为Yes,说明复制正常。若有错误,可根据Last_Error信息排查。
4. 注意事项与常见问题
实际部署时需注意数据一致性、网络稳定性及权限配置。
- 首次配置建议对主库进行一致性备份,再导入从库,避免数据差异。
- 确保主从服务器时间同步,可使用NTP服务。
- 防火墙开放3306端口,允许从库访问主库。
- 如果从库报错1201或1062,可能是数据冲突,需根据业务判断是否跳过错误(谨慎操作)。
基本上就这些。只要配置正确,MySQL主从复制可以稳定运行。不复杂但容易忽略细节,比如server-id重复或权限不足。


