搭建MySQL主从复制环境能实现数据的实时同步,提升系统可用性和读写性能。关键步骤包括配置主库(Master)和从库(Slave),确保网络互通,并正确设置权限与日志。
1. 配置主库(Master)
主库需要开启二进制日志(binlog),并设置唯一的server-id,用于记录数据变更。
编辑MySQL配置文件 my.cnf(通常位于 /etc/my.cnf 或 /etc/mysql/my.cnf):[mysqld]
server-id = 1
log-bin = mysql-bin
binlog-format = ROW
systemctl restart mysqld
登录MySQL,创建用于主从复制的账号并授权:CREATE USER 'repl'@'%' IDENTIFIED BY 'your_password';
GRANT REPLICATION SLAVE ON *.* TO 'repl'@'%';
FLUSH PRIVILEGES;
SHOW MASTER STATUS;
2. 配置从库(Slave)
从库同样需要设置唯一的server-id,不能与主库重复,并指定连接主库的信息。
编辑从库的my.cnf文件:[mysqld]
server-id = 2
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 STATUS\G
检查关键字段:Slave_IO_Running: Yes
Slave_SQL_Running: Yes
若均为Yes,说明复制正常。若有错误,可根据Last_Error信息排查。
4. 注意事项与常见问题
实际部署时需注意数据一致性、网络稳定性及权限配置。
首次配置建议对主库进行一致性备份,再导入从库,避免数据差异。 确保主从服务器时间同步,可使用NTP服务。 防火墙开放3306端口,允许从库访问主库。 如果从库报错1201或1062,可能是数据冲突,需根据业务判断是否跳过错误(谨慎操作)。基本上就这些。只要配置正确,MySQL主从复制可以稳定运行。不复杂但容易忽略细节,比如server-id重复或权限不足。
