最近最是在MySQL5.7上的的gtid主從複製問題老是趕上下面問題:sql
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.
這個問題出現有不少狀況,多是從庫把數據導過來了,可是主庫的日誌裏是顯示刪除插入等操做,從庫去讀日誌不一致就會報錯,其次是主庫日誌被清理了也會產生。這時通常出現問題時按以下思路處理app
stop slave Set @@SESSION.GTID_NEXT= '23be4eb1-d990-11e7-921a-0242ac110002:13476'; BEGIN;COMMIT; Set @@SESSION.GTID_NEXT = AUTOMATIC; start slave
可是可能錯誤的日誌事務不少,這時一個一個的跳過不知道要跳到何時,如過你以爲從庫的數據與主庫一致了,或者不一致的話備份過來,這時你就能夠直接把主庫的日誌清了,從新搭建:this
--主庫上 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;
這時還有問題的話同樣像上面跳過,已經不多了。直至成功。spa