常见 MySQL 主从复制错误代码及解释
1、Error_code: 1032
-
含义:
Can't find record in 'table_name' -
解释: 从库尝试执行一个
DELETE或UPDATE语句,但在对应表中没有找到主键匹配的记录。 -
原因:
-
从库的数据和主库的数据不一致,可能是数据被人为更改或丢失。
-
主库执行删除操作时,该记录存在,但从库之前已经删除。
-
-
解决方法:
-
手动对齐主从数据(例如使用
pt-table-checksum和pt-table-sync工具)。 -
跳过当前错误事件(不推荐长远使用):
-
STOP SLAVE; SET GLOBAL SQL_SLAVE_SKIP_COUNTER = 1; START SLAVE;
-
2、Error_code: 1062
-
含义:
Duplicate entry 'xxx' for key 'PRIMARY' -
解释: 从库执行插入(
INSERT)语句时出现主键冲突,说明该数据已经存在。 -
原因:
-
从库中手动插入了数据,造成主键重复。
-
主库数据被多次同步。
-
-
解决方法:
-
检查并删除从库中冲突的数据。
-
避免直接在从库执行写操作。
-
3、Error_code: 1146
-
含义:
Table 'db_name.table_name' doesn't exist -
解释: 从库尝试对某张表操作时,发现该表不存在。
-
原因:
-
表尚未复制到从库。
-
从库的表被误删或复制顺序出错。
-
-
解决方法:
-
确保表结构同步(重新导入表结构)。
-
检查复制起点和顺序。
-
4、Error_code: 1213
-
含义:
Deadlock found when trying to get lock; try restarting transaction -
解释: 从库在执行复制事件时出现死锁。
-
原因:
-
多个线程在从库执行时产生锁冲突。
-
-
解决方法:
-
检查并优化应用事务逻辑。
-
设置
slave_parallel_workers为较小的值,避免并发太多。
-
5、Error_code: 1594
-
含义:
Relay log read failure: Could not parse relay log event entry -
解释: 从库的 relay log 被破坏或格式错误。
-
原因:
-
复制过程中网络异常导致中间日志损坏。
-
-
解决方法:
-
重新设置从库:
-
RESET SLAVE; CHANGE MASTER TO ...; START SLAVE;
-
6、Error_code: 1872
-
含义:
Slave failed to initialize relay log info structure from the repository -
解释: 从库无法正确初始化复制状态。
-
解决方法:
-
通常需要清空复制状态并重新配置主从关系。
-

浙公网安备 33010602011771号