千家信息网

记一次MySQL主从复制出错

发表于:2024-11-20 作者:千家信息网编辑
千家信息网最后更新 2024年11月20日,这个主从复制经常出错,我也是***了,上一次的原因是从库的配置文件有问题,我已解决,今天又出错了,如图: 所以解决的方法是跳过错误的事务。在MySQL5.6之前,只需执行:mysql>set glob
千家信息网最后更新 2024年11月20日记一次MySQL主从复制出错

这个主从复制经常出错,我也是***了,上一次的原因是从库的配置文件有问题,我已解决,今天又出错了,如图: 所以解决的方法是跳过错误的事务。

在MySQL5.6之前,只需执行:

mysql>set global sql_slave_skip_counter=1;

跳过一个错误的事务,就可以继续进行复制了,但在Mysql5.6之后就不行了:

分析:

因为是通过gtid来进行复制的,所以需要跳过这个事务从而继续复制,这个事务可以到主上的binlog里面查看:因为不知道找哪个GTID上出错,所以也不知道如何跳过哪个GTID。但在show slave status里的信息里可以找到在执行Master里的POS:635508

通过命令

mysql> SHOW BINLOG EVENTS in 'mysql-bin.002121' from 635508 limit 10;

可查看出要调过的GTID

mysql-bin.002121 | 635508 | Gtid | 1408099586 | 635573 | SET @@SESSION.GTID_NEXT= '9b4f9d6b-5777-11e8-9e63-ec0d9a2fab3e:97831165'

然后,按照如下图执行:

mysql>set session gtid_next= '9b4f9d6b-5777-11e8-9e63-ec0d9a2fab3e:97831165';

mysql>begin;

mysql>commit;

mysql>SET SESSION GTID_NEXT = AUTOMATIC;

mysql>start slave;

然后查看状态

问题得以解决,Perfect!

0