MySQL主从复制不同步应优先定位差异、停写入、安全修复:先查SHOW SLAVE STATUS中的Seconds_Behind_Master、IO/SQL线程状态及Last_SQL_Error;再用pt-table-checksum/sync精准修复;差异过大时重建从库。
MySQL主从复制不同步,核心是定位差异点、停止写入干扰、安全修复数据,而不是直接跳过错误或重做从库——后者成本高、风险大。
先登录从库执行:
SHOW SLAVE STATUS\G
重点关注三项:
再比对主从的Exec_Master_Log_Pos与Read_Master_Log_Pos,若差距持续扩大,说明IO线程拉日志正常但SQL线程处理不过来(常见于大事务、从库性能差、慢查询未优化)。
适用于DDL已存在、重复插入主键冲突等“无业务影响”的场景。操作前务必确认主库该事件确实不该在从库执行:
⚠️ 注意:该方式不推荐用于GTID模式;GTID下应使用SET GTID_NEXT + 空事务方式跳过,否则会破坏GTID一致性。
Percona Toolkit是生产环境最稳妥的数据一致性修复组合:
-print预览)优势在于只修差异行,不影响正常业务;缺点是需安装Perl依赖,且主从表结构、字符集必须严格一致。
不是重装MySQL,而是重新构建一个干净的从库:
整个过程主库只读锁时间极短(几秒),适合中大型系统。关键点是--master-data=2会把CHANGE语句写进dump文件,避免手动定位位置出错。
不复杂但容易忽略:修复后务必持续观察Seconds_Behind_Master是否稳定归零,并抽查几个核心表的COUNT和SUM结果是否一致。