方法一: 適用於5.5版本
mysql>slave stop;
mysql>SET GLOBAL SQL_SLAVE_SKIP_COUNTER = 1 #跳過一個事務
mysql>slave start

方法二: 通用
下載percona-toolkit(centos 7版本rpm包)
#wget https://www.percona.com/downloads/percona-toolkit/3.0.10/binary/redhat/7/x86_64/percona-toolkit-3.0.10-1.el7.x86_64.rpm
下載percona-toolkit源碼包
# wget https://www.percona.com/downloads/percona-toolkit/3.0.10/binary/tarball/percona-toolkit-3.0.10_x86_64.tar.gz
基礎依賴安裝:
#yum install perl-devel perl-ExtUtils-CBuilder perl-ExtUtils-MakeMaker perl-DBI perl-DBD-MySQL perl-IO-Socket-SSL perl-Digest-MD5 perl-TermReadKey.x86_64
rpm安裝
#rpm -ivh percona-toolkit-3.0.10-1.el7.x86_64.rpm
編譯安裝
# perl Makefile.PL
# make && make install
命令使用
#pt-slave-restart --user=root --password=XXXX --socket=/r2/mysqldata/mysql.sock --error-numbers=1062
pt-slave-restart的使用
mysql主從同步遇到問題,指定跳過某個錯誤。對於開啟GTID的復制進程也有用。
可以跳過所有錯誤,但是是否要執行跳過操作,要看錯誤提示和業務要求。
#./pt-slave-restart --user=root --password=dkqb5ilwv9rKe~riBgqa --socket=/r2/mysqldata/mysql.sock --error-numbers=1062
但是對於mysql5.6以后,開啟了多線程復制的,就不能跳過錯誤,會報錯:
Cannot skip transactions properly because GTID is enabled and slave_parallel_workers > 0. See 'GLOBAL TRANSACTION IDS' in the tool's documentation.
解決辦法:
mysql> set global slave_parallel_workers=0;
