mysql主从同步失败原因(mysql 主从复制如何跳过报错)
类别:数据库 浏览量:1491
时间:2022-04-02 16:26:09 mysql主从同步失败原因
mysql 主从复制如何跳过报错一、传统binlog主从复制,跳过报错方法
|
mysql> stop slave; mysql> set global sql_slave_skip_counter = 1; mysql> start slave; mysql> show slave status \G |
二、GTID主从复制,跳过报错方法
|
mysql> stop slave; #先关闭slave复制; mysql> change master to ...省略... #配置主从复制; mysql> show slave status\G #查看主从状态; |
发现报错:
|
mysql> show slave status\G *************************** 1. row *************************** Slave_IO_State: Waiting for master to send event Master_Host: 172.19.195.212 Master_User: master-slave Master_Port: 3306 Connect_Retry: 60 Master_Log_File: mysql-bin.000021 Read_Master_Log_Pos: 194 Relay_Log_File: nginx-003-relay-bin.000048 Relay_Log_Pos: 454 Relay_Master_Log_File: mysql-bin.000016 Slave_IO_Running: Yes Slave_SQL_Running: No Replicate_Do_DB: Replicate_Ignore_DB: Replicate_Do_Table: Replicate_Ignore_Table: Replicate_Wild_Do_Table: Replicate_Wild_Ignore_Table: Last_Errno: 1007 Last_Error: Error 'Can' t create database 'code' ; database exists ' on query. Default database: ' code '. Query: ' create database code ' Skip_Counter: 0 Exec_Master_Log_Pos: 8769118 Relay_Log_Space: 3500 Until_Condition: None Until_Log_File: Until_Log_Pos: 0 Master_SSL_Allowed: No Master_SSL_CA_File: Master_SSL_CA_Path: Master_SSL_Cert: Master_SSL_Cipher: Master_SSL_Key: Seconds_Behind_Master: NULL Master_SSL_Verify_Server_Cert: No Last_IO_Errno: 0 Last_IO_Error: Last_SQL_Errno: 1007 Last_SQL_Error: Error ' Can 't create database ' code '; database exists' on query. Default database : 'code' . Query: 'create database code' Replicate_Ignore_Server_Ids: Master_Server_Id: 100 Master_UUID: fea89052-11ef-11eb-b241-00163e00a190 Master_Info_File: /usr/ local /mysql/data/master.info SQL_Delay: 0 SQL_Remaining_Delay: NULL Slave_SQL_Running_State: Master_Retry_Count: 86400 Master_Bind: Last_IO_Error_Timestamp: Last_SQL_Error_Timestamp: 201022 09:31:29 Master_SSL_Crl: Master_SSL_Crlpath: Retrieved_Gtid_Set: fea89052-11ef-11eb-b241-00163e00a190:8-5617 Executed_Gtid_Set: a56c9b04-11f1-11eb-a855-00163e128853:1-11224, fea89052-11ef-11eb-b241-00163e00a190:1-5614 Auto_Position: 1 Replicate_Rewrite_DB: Channel_Name: Master_TLS_Version: 1 row in set (0.01 sec) |
可以看到 Slave_SQL_Running 为 NO,表示运行取回的二进制日志出了问题;
在 Last_Error 中也可以看到大概的报错;(因为我之前的操作,大概可以判断出 是因为主库的二进制日志中有创建code库的sql,而从库上我已经创建了这个库,应该是产生了冲突;)
解决方法:
1、如果清楚自己之前的操作,可以将从库中产生冲突的库删除;
2、或者通过跳过GTID报错的事务的方法
|
--- 通过 Last_SQL_Errno 报错编号查询具体的报错事务 mysql> select * from performance_schema.replication_applier_status_by_worker where LAST_ERROR_NUMBER=1007\G *************************** 1. row *************************** CHANNEL_NAME: WORKER_ID: 0 THREAD_ID: NULL SERVICE_STATE: OFF LAST_SEEN_TRANSACTION: fea89052-11ef-11eb-b241-00163e00a190:5615 LAST_ERROR_NUMBER: 1007 LAST_ERROR_MESSAGE: Error 'Can' t create database 'code' ; database exists ' on query. Default database: ' code '. Query: ' create database code ' LAST_ERROR_TIMESTAMP: 2020-10-22 09:31:29 1 row in set (0.00 sec) mysql> stop slave; Query OK, 0 rows affected (0.00 sec) --- 跳过查找到报错的事务(LAST_SEEN_TRANSACTION 的值) mysql> set @@session.gtid_next=' fea89052-11ef-11eb-b241-00163e00a190:5615'; Query OK, 0 rows affected (0.00 sec) mysql> begin ; Query OK, 0 rows affected (0.00 sec) --- 提交一个空的事务,因为设置gtid_next后,gtid的生命周期开始了,必须通过显性的提交一个事务来结束; mysql> commit ; Query OK, 0 rows affected (0.00 sec) --- 设置回自动模式; mysql> set @@session.gtid_next=automatic; Query OK, 0 rows affected (0.00 sec) mysql> start slave; Query OK, 0 rows affected (0.00 sec) |
通过以上步骤,就跳过了这次的GTID报错的事务,如果 start slave 之后还是有报错,那么就按照此步骤继续跳过;
经验丰富的话,基本不用查询事务,通过 Executed_Gtid_Set 就可以判断出报错的事务是 fea89052-11ef-11eb-b241-00163e00a190:5615 了;因为执行事务,到 fea89052-11ef-11eb-b241-00163e00a190:1-5614 的时候报错了,应该可以判断是 5615事务出现的错误;
以上就是mysql 主从复制如何跳过报错的详细内容,更多关于MySQL 跳过报错的资料请关注开心学习网其它相关文章!
原文链接:http://blog.v587xpt.top/archives/mysql%E4%B8%BB%E4%BB%8E%E5%A4%8D%E5%88%B6%E6%8A%A5%E9%94%99%E8%B7%B3%E8%BF%87%E6%96%B9%E6%B3%95?utm_source=tuicool&utm_medium=referral
您可能感兴趣
- MySQL执行事务的语法与流程详解(MySQL执行事务的语法与流程详解)
- mysql 双主双备(MySQL配置了双主,是如何避免出现数据回环冲突的)
- mysql学习之索引介绍及其原理(MySQL学习教程之聚簇索引)
- 修改mysql安装服务名称(Apache为mysql以及自己的项目设置虚拟路径)
- mysql中FIND_IN_SET函数
- MySql DATE_FORMAT日期格式化
- mysql锁机制图解(详解mysql 中的锁结构)
- sysbenchmysql性能跑分(MySQL性能压力基准测试工具sysbench的使用简介)
- docker如何搭建mysql(docker容器访问宿主机的MySQL操作)
- mysql 加锁处理分析(mysql死锁和分库分表问题详解)
- 为什么mysql主键要设置自增列(浅谈MySQL中的自增主键用完了怎么办)
- MySQL 8.0.19安装详细教程(windows 64位)(MySQL 8.0.19安装详细教程windows 64位)
- python怎么操作mysql(详解Python的数据库操作pymysql)
- mysqltruncate分区自定义参数(MySQL truncate table语句的使用)
- 升级mysql客户端版本(超详细教你怎么升级Mysql的版本)
- mysql数据类型图解(MySQL数据库主从技术GTID大揭秘)
- 小敏家 剧情离谱一锅乱炖,但他们俩绝对是这部剧的一大 亮点(剧情离谱一锅乱炖)
- 《倚天屠龙记》再遭翻拍,关晓彤主演赵敏,蒋劲夫演张无忌,你怎么看(倚天屠龙记再遭翻拍)
- 吴启华与曾舜晞两代张无忌同框,戏里经典的他却没活出原著的潇洒(吴启华与曾舜晞两代张无忌同框)
- 经常发这三种 朋友圈 的人,要迅速屏蔽(经常发这三种朋友圈)
- 有种尴尬叫朋友圈忘屏蔽,大学生上演社死现场,父母亲自下场吐槽(有种尴尬叫朋友圈忘屏蔽)
- 朋友圈屏蔽你的人,可以直接看淡了(朋友圈屏蔽你的人)
热门推荐
- python实现螺旋矩阵(Python3实现的旋转矩阵图像算法示例)
- dedecms点赞功能怎么做呢(dedecms实现任意页面调用当前会员信息的方法)
- docker node 分阶段构建(Docker安装、创建镜像、加载并运行NodeJS程序的详细过程)
- js RegExp用法
- 阿里云服务器远程密码在哪(教你如何重置阿里云服务器远程连接密码)
- linux切换python版本(linux安装python修改默认python版本方法)
- tomcat在linux系统安装步骤(Tomcat的卸载和重装的实现图文)
- python装饰器初学者教程(Python3.5装饰器原理及应用实例详解)
- php 面向对象与面向过程(php面向对象重点知识分享)
- python如何判断是否为回文数(对python判断是否回文数的实例详解)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9