在MySQL中查看复制状态错误,主要通过 SHOW SLAVE STATUS 命令来获取从库的复制详情,其中包含是否有错误以及错误的具体信息。
1. 执行命令查看复制状态
登录到MySQL从库后,运行以下命令:SHOW SLAVE STATUS\G
注意:使用 \G 而不是分号,可以让输出更清晰,按字段垂直显示。2. 关键字段检查复制错误
重点关注以下几个字段: Slave_IO_Running:应为 Yes,表示IO线程正常拉取主库日志。 Slave_SQL_Running:应为 Yes,表示SQL线程正常执行中继日志。 Last_Error:最近一次的错误描述,如果有复制错误,会在这里显示具体原因。 Last_IO_Error:IO线程发生的错误,比如网络问题、权限不足等。 Last_SQL_Error:SQL线程执行中继日志时出错,如数据冲突、表不存在等。 Seconds_Behind_Master:如果为 NULL 或很大数值,可能意味着复制中断或延迟严重。3. 常见错误及处理思路
例如输出中出现:Last_SQL_Error: Could not execute Write_rows event on table test.t1; Duplicate entry '1' for key 'PRIMARY', Error_code: 1062
说明在插入数据时发生主键冲突。可考虑: 确认主从数据一致性,是否人为修改过从库数据。 临时跳过错误(谨慎操作):STOP SLAVE;
SET GLOBAL sql_slave_skip_counter = 1;
START SLAVE; 更安全的方式是重建从库或使用 pt-table-sync 工具修复数据。
4. 使用命令快速判断是否有错误
可以简化查询,只看关键状态:SHOW SLAVE STATUS\G
查看 Last_Error、Last_IO_Error 和 Last_SQL_Error 是否为空。
基本上就这些。只要定期检查复制状态,及时发现并处理错误,就能保障主从同步稳定运行。
