MYSQL从库错误处理办法

GTID模式,跳过一个错误方法

show slave status\G 获取得: Executed_Gtid_Set: 53f6d8b8-05a4-11f0-a65a-00155d0ab502:1-30, 95b87dd7-eb43-11ef-b512-00155d0ab406:1-3213636

从 SHOW SLAVE STATUS\G 的输出可以看到,当前从库已经执行了两个 GTID 集合:

  1. 53f6d8b8-05a4-11f0-a65a-00155d0ab502:1-30
    • 这是来自某个主库(或之前的复制源)的 GTID 集合,包含事务 1 到 30。
  2. 95b87dd7-eb43-11ef-b512-00155d0ab406:1-3213153
    • 这是当前主库的 GTID 集合,已执行到事务 3213153。

STOP SLAVE;
SET GTID_NEXT='95b87dd7-eb43-11ef-b512-00155d0ab406:3213154';  -- 替换为报错的GTID
BEGIN; COMMIT;  -- 提交一个空事务
SET GTID_NEXT='AUTOMATIC';  -- 恢复自动模式
START SLAVE;
SHOW SLAVE STATUS\G

非GTID模式跳过错误方法

1、如果错误数据量,可以使用这种方法:

stop slave;
SET GLOBAL SQL_SLAVE_SKIP_COUNTER=1;
start slave;
show slave status\G



2、长时间跳过,设定错误ID号。

slave-skip-errors=all    跳过一切,不建议使用
slave-skip-errors=1063   只跳过1063这个错误