导读
在MySQL复制中,如何忽略slave节点上发生的主键冲突、数据不存在等错误。
在MySQL复制中,如果slave节点上遇到错误,比如数据不存在或者主键冲突等错误时,想要忽略这些错误,可以采用以下几种方法:
1、未启用GTID模式时
只需通过设定 SQL_SLAVE_SKIP_COUNTER 的值,即可忽略一些复制事件。例如:
#需要先关闭SLAVE服务
root@imysql.com [test]> STOP SLAVE;
#忽略N个事件(event),通常一个SQL是一个事件
root@imysql.com [test]> SET SQL_SLAVE_SKIP_COUNTER=N;
#再次启动SLAVE服务
root@imysql.com [test]> START SLAVE;
2、启用GTID模式时
启用GTID,想要忽略某些错误事件就稍微麻烦一点点了。
首先,我们需要先查看当前SLAVE复制的进度:
mysql> SHOW SLAVE STATUS\G
从中看到,当前SLAVE复制的GTID进展是:
Slave_IO_Running: Yes
Slave_SQL_Running: No
Last_Errno: 1062
Last_Error: …Duplicate…key ‘PRIMARY’, Error_code: 1062;…
Master_UUID: f2b6c829-9c87-11e4-84e8-deadeb54b599
Retrieved_Gtid_Se