重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
这个主从复制经常出错,我也是***了,上一次的原因是从库的配置文件有问题,我已解决,今天又出错了,如图: 所以解决的方法是跳过错误的事务。
成都创新互联公司10多年企业网站制作服务;为您提供网站建设,网站制作,网页设计及高端网站定制服务,企业网站制作及推广,对玻璃贴膜等多个方面拥有多年的网站维护经验的网站建设公司。
在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!