如何查看主从同步的状态
一、最核心命令(在从库执行,Windows Navicat / CMD都能用)
登录从库MySQL,执行这条命令:
SHOWSLAVESTATUS\G注意:结尾是反斜杠+G,不要用分号。
重点看这两行,决定同步是否正常:
Slave_IO_Running
- Yes:从库成功连上主库,正在拉取二进制日志
- Connecting:连不上主库(IP、端口、防火墙、账号密码问题)
- No:连接失败
Slave_SQL_Running
- Yes:日志正常执行,数据同步正常
- No:数据冲突、主键重复、数据不一致,同步中断
二、几个关键状态字段解释
Last_IO_Error
IO线程报错信息,连不上主库时看这里。Last_SQL_Error
SQL线程报错信息,同步中断、主键冲突都会写在这里。Seconds_Behind_Master
主从延迟时间(单位秒)
- 0:无延迟,实时同步
- 数字越来越大:同步跟不上主库写入速度
- Replicate_Wild_In_Table_List
可以查看你设置的【只同步部分表】的过滤规则是否生效。
三、主库上查看状态(主库执行)
查看主库二进制日志位置:
SHOWMASTERSTATUS;会显示当前binlog文件名和位置。
查看主库复制账号是否存在:
SELECTuser,hostFROMmysql.userWHEREuser='repl';四、Windows CMD 下查看完整日志(排查错误必备)
- 打开MySQL命令行
mysql -uroot -p- 输入密码后执行:
SHOWSLAVESTATUS\G五、常用启停命令
停止同步:
STOP SLAVE;启动同步:
STARTSLAVE;重置主从(重新搭建主从时使用):
RESET SLAVEALL;六、最简单的判断口诀
- IO=Connecting:网络/账号/防火墙不通
- IO=Yes,SQL=No:两张表数据不一致,主键冲突
- 两项都是Yes:主从同步正常,指定数据表会自动备份
你把执行SHOW SLAVE STATUS\G的结果发给我,我可以直接帮你定位问题。
