【修复MySQL 主从Last_Errno:1051报错的几种解决方案】

发布于:2025-06-22 ⋅ 阅读:(12) ⋅ 点赞:(0)

当MySQL主从集群遇到Last_Errno:1051报错后不要着急,主要有三种解决方案:
在这里插入图片描述

方案1:

使用GTID场景:

mysql> STOP SLAVE;

(2)设置事务号,事务号从Retrieved_Gtid_Set获取
在session里设置gtid_next,即跳过这个GTID

mysql> SET @@SESSION.GTID_NEXT= '8f9e146f-0a18-11e7-810a-0050568832c3:5'

(3)设置空事物

mysql> BEGIN; COMMIT;

(4)恢复事物号

mysql> SET SESSION GTID_NEXT = AUTOMATIC;

(5)启动slave进程

mysql> START SLAVE;

未使用GTID场景:

msyql> stop slave;
msyqI> set GLOBAL SQL_SLAVE_SKIP COUNTER=1;
msyql> start slave,

方案2:

mysql> STOP SLAVE;
mysql> RESET MASTER;
mysql> SET @@GLOBAL.GTID_PURGED ='8f9e146f-0a18-11e7-810a-0150568833c8:1-5'
mysql> START SLAVE;

方案3:使用pt-slave-repair工具

pt-slave-repair是对原有pt-slave-restart工具的补充,它提供自动修复MySQL主从同步复制的报错数据,以及恢复中断的sql thread复制线程。
二进制文件下载地址

https://github.com/hcymysql/pt-slave-repair/releases/tag/pt-slave-repair_v1.0.9
shell> chmod 755 pt-slave-repair
连接到同步报错的slave从库上执行(请用MySQL复制的账号,例如repl,并赋予工具运行的权限)
mysql> show grants for repl@'%';

+------------------------------------------------------------------------+

| Grants for repl@%                                                       |

+------------------------------------------------------------------------+

| GRANT SUPER, REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO `repl`@`%`|

| GRANT SELECT, INSERT, UPDATE, DELETE ON `yourDB`.* TO `repl`@`%`         |

| GRANT SELECT ON `performance_schema`.* TO `repl`@`%`                   |

+------------------------------------------------------------------------+

3 rows in set (0.00 sec)


shell> ./pt-slave-repair -H 192.168.198.239 -P 3346 -u repl -p hechunyang -d test

网站公告

今日签到

点亮在社区的每一天
去签到