1062错误——主键冲突,出现这种情况就是从库出现插入操作,主库又插入相同的数据,iothread没问题,sqlthread出错
方法一:对于数据量少的时候适用
-
根据唯一性key查找相关记录
-
master库备份记录
-
slave库删除重复记录
例如我的提示信息
mysql> select * from performance_schema.replication_applier_status_by_worker\G
然后根据查询到的内容确定问题在哪
方法二:对于数据量大的时候适用
1. 从库操作
show variables like '%slave_exec_mode%';
set global slave_exec_mode='IDEMPOTENT';
stop slave;
start slave;
2. 确认主从无延迟及确认数据一致 操作完后,修改回去-------可以了,改回去(存在数据不一致的风险)
set global slave_exec_mode='STRICT';
stop slave;
start slave;
方法三:跳过这个错误
不停机跳过
mysql> stop slave;
#表示跳过一步错误,后面的数字可变,(或者N条event,一条一条跳过)
mysql> set global sql_slave_skip_counter =1;
mysql> start slave;
之后再用
mysql> show slave status/G 查看
停机跳过这个错误,需要重启数据库,以后遇到这个错误也会跳过,在mysql-server.cnf 添加slave-skip-errors=1062, 然后重启数据库就可以了
[root@rocky8 ~]# grep -vE '^#|^$' /etc/my.cnf.d/mysql-server.cnf
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
log-error=/var/log/mysql/mysqld.log
pid-file=/run/mysqld/mysqld.pid
server-id=2
slave-skip-errors=1062
发表评论