方法一: 适用于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;
