主从复制断开连接问题
-
跳过复制失败的错误
- 直接跳过当前事务
## GTID模式下,通过以下命令解决 STOP SLAVE; SET GTID_NEXT='xxxxxx:yyy'; ----- 设置需要跳过的gtid event BEGIN;COMMIT; SET GTID_NEXT='AUTOMATIC'; START SLAVE; ## 非GTID模式下,可以通过下面的命令来解决 stop slave; set sql_slave_skip_counter=1; start slave; ## 查看是否是gtid模式 show variables like '%gtid%';
主从中断问题的原因及解决方案
MySQL主从库中断的原因与处理
● 1. 主库上修改用户权限
原因:在主库上执行drop user 或者授权操作时,导致的从库上报错,停止恢复主库的binlog。 解决方法:重启从库同步,跳过出错语句在从库上执行。
mysql> stop slave;
mysql> set sql_slave_skip_counter=1;
mysql> start slave;
注意:在主库上对用户进行操作/授权时,进入mysql提示符后,不要指定具体的数据库,可以避免这类情况发生。
当然也可以对用户权限进行操作时,强制不记录binlog,即:
set session sql_log_bin=0;
grant …..;/drop user …;
set session sql_log_bin=1;
最常见的3种故障
Error_code:1032;handler error HA_ERR_KEY_NOT_FOUND
说明:从库上找不到记录
-
Last_SQL_Error: Could not execute Update_rows event on table XXX. Event's master log mysql-bin.000010 , end_log_pos 794
原因:主库上更新了记录,从库找不到记录。 解决:在主库上执行mysqlbinlog分析出错命令的二进制日志进行了哪些操作。然后到从库查找对应的记录看看有没有,如果没有,从根据主库的记录插入到从库即可。接着到从库,跳过当前事务。
-
Last_SQL_Error: Could not execute Delete_rows event on table XXX.
原因:主库删除了记录,从库找不到记录。 解决:直接在从库上跳过。
Error_code:1062;handler error HA_ERR_FOUND_DUPP_KEY
说明:主键重复,从库上已经有了某条记录,主库上又插入了一条相同的记录。
解决:删除从库对应的主键,然后开启同步复制。
desc table_name;
delete from table_name where id = xxx;
start slave;
show slave status \G
最后到主库和从库上都确认一下
select * from table_name where id = xxx;
确保执行成功
https://blog.csdn.net/gms13410433461/article/details/115271632