欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 财经 > 产业 > MySQL 主从同步异常处理

MySQL 主从同步异常处理

2025/9/23 6:50:59 来源:https://blog.csdn.net/TangKenny/article/details/148522586  浏览:    关键词:MySQL 主从同步异常处理

阅读原文:https://www.xiaozaoshu.top/articles/mysql-m-s-update-pk

MySQL 做双主,遇到的这个错误:

Could not execute Update_rows event on table ... Error_code: 1032

MySQL 主从复制时的经典错误之一,通常表示:

从库试图应用主库上的某条更新语句,但 在从库中找不到这条记录


❗ 错误分析(Error_code: 1032)

这是 MySQL 的错误代码 1032

Error 1032 (HY000): Can’t find record in ‘your_table’

这通常发生在以下情况:

  • 主库执行了 UPDATE 一行记录
  • 这个 UPDATE 被写进 binlog
  • 从库执行这个 UPDATE 时,发现这条记录在从库不存在(可能被删了,或同步中丢了)

🧩 常见原因

  1. 从库数据和主库不一致(最常见 ✅)
  2. 从库某些表被手动更改或删除了数据
  3. 多线程复制 + 并发下的事务顺序问题
  4. 主库使用了 ROW 格式 binlog,但从库表结构不一致
  5. 从库 IO 线程或 SQL 线程之前中断,某些日志未完整应用

🛠️ 解决方案

✅ 方法 1:跳过错误(应急用)

STOP SLAVE;
SET GLOBAL sql_slave_skip_counter = 1;
START SLAVE;

然后再执行:

SHOW SLAVE STATUS\G

Seconds_Behind_Master 是否恢复。

⚠️ 注意:这个方法只是跳过一个错误事件可能会导致数据进一步不一致仅用于临时处理


✅ 方法 2:重新同步这张表(推荐)

适合你这种只某一张表数据不同步的情况。

步骤如下:

(1)在主库导出这张表
mysqldump -u root -p --single-transaction --skip-lock-tables your_database your_table > your_table.sql
(2)在从库导入这张表(覆盖)
mysql -u root -p your_database < your_table.sql
(3)重新启动复制
START SLAVE;

✅ 方法 3:彻底重做从库(如果不止一张表)

如果数据已经严重不一致,可以考虑:

  1. 停止从库复制
  2. 重新用 mysqldumpxtrabackup 从主库做一次完整的备份
  3. 在从库恢复数据
  4. 重新设定主从

🔎 小贴士:看错误详情

建议你执行:

SHOW SLAVE STATUS\G

重点看这几项:

  • Last_Error(错误内容)
  • Relay_Log_FileRelay_Log_Pos(出错位置)
  • Retrieved_Gtid_SetExecuted_Gtid_Set(如果用 GTID)

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词