最近最是在MySQL5.7上的的gtid主从复制问题总是遇上下面问题:
Last_Error: Coordinator stopped because there were error(s) in the worker(s). The most recent failure being: Worker 1 failed executing transaction '23be4eb1-d990-11e7-921a-0242ac110002:13476' at master log bin.000001, end_log_pos 4981755. See error log and/or performance_schema.replication_applier_status_by_worker table for more details about this failure or others, if any.
这个问题出现有很多情况,可能是从库把数据导过来了,但是主库的日志里是显示删除插入等操作,从库去读日志不一致就会报错,其次是主库日志被清理了也会产生。这时一般出现问题时按如下思路处理
stop slave
Set @@SESSION.GTID_NEXT= '23be4eb1-d990-11e7-921a-0242ac110002:13476';
BEGIN;COMMIT;
Set @@SESSION.GTID_NEXT = AUTOMATIC;
start slave
但是可能错误的日志事务很多,这时一个一个的跳过不知道要跳到什么时候,如过你觉得从库的数据与主库一致了,或者不一致的话备份过来,这时你就可以直接把主库的日志清了,重新搭建:
--主库上 reset master --从库上 stop slave reset master reset slave change master to master_host='172.16.44.39', master_user='repl', master_password='repl',master_port=3306,master_auto_position=1; start slave show slave status\G;
这时还有问题的话一样像上面跳过,已经很少了。直至成功。