当前位置: 首页 > news >正文

mysql主从同步怎么跳过错误

今天介绍两种mysql主从同步跳过错误的方法:

一、两种方法介绍

1、跳过指定数量的事务:

mysql>slave stop;
mysql>SET GLOBAL SQL_SLAVE_SKIP_COUNTER = 1        #跳过一个事务
mysql>slave start

2、修改mysql的配置文件,通过slave_skip_errors参数来跳所有错误或指定类型的错误

vi /etc/my.cnf
[mysqld]
#slave-skip-errors=1062,1053,1146  #跳过指定error no类型的错误
#slave-skip-errors=all  #跳过所有错误

二、试验环节

下面模拟一个错误场景
1、环境(一个已经配置好的主从复制环境)
master数据库IP:192.168.0.201
slave数据库IP:192.168.0.202
mysql版本:8.0.23
binlog-do-db = mydb

2、在master上执行以下语句:

mysql>use mysql;
mysql>create table t1 (id int);
mysql>use mydb;
mysql>insert into mysql.t1 select 1;

在slave上查看复制状态

mysql> show slave status\G
*************************** 1. row ***************************Slave_IO_State: Waiting for master to send eventMaster_Host: 192.168.0.200Master_User: slave1Master_Port: 3306Connect_Retry: 60Master_Log_File: master-bin.000084Read_Master_Log_Pos: 19843Relay_Log_File: slave-relay-bin.000004Relay_Log_Pos: 1982Relay_Master_Log_File: master-bin.000084Slave_IO_Running: YesSlave_SQL_Running: NoReplicate_Do_DB: Replicate_Ignore_DB: Replicate_Do_Table: Replicate_Ignore_Table: Replicate_Wild_Do_Table: Replicate_Wild_Ignore_Table: Last_Errno: 1146Last_Error: Error 'Table 'mysql.t1' doesn't exist' on query. Default database: 'mydb'. Query: 'insert into mysql.t1 select 1'Skip_Counter: 0Exec_Master_Log_Pos: 2319Relay_Log_Space: 2145Until_Condition: NoneUntil_Log_File: Until_Log_Pos: 0Master_SSL_Allowed: NoMaster_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: NoLast_IO_Errno: 0Last_IO_Error: Last_SQL_Errno: 1146Last_SQL_Error: Error 'Table 'mysql.t1' doesn't exist' on query. Default database: 'mydb'. Query: 'insert into mysql.t1 select 1'Replicate_Ignore_Server_Ids: Master_Server_Id: 2013306Master_UUID: ed5a23af-1650-11ee-84bd-0242ac110002Master_Info_File: mysql.slave_master_infoSQL_Delay: 0SQL_Remaining_Delay: NULLSlave_SQL_Running_State: Master_Retry_Count: 86400Master_Bind: Last_IO_Error_Timestamp: Last_SQL_Error_Timestamp: 231210 21:37:19Master_SSL_Crl: Master_SSL_Crlpath: Retrieved_Gtid_Set: Executed_Gtid_Set: Auto_Position: 0
1 row in set (0.00 sec)

由结果可以看到,Read_Master_Log_Pos: 19843,Exec_Master_Log_Pos: 2319时出错了Last_SQL_Error: Error ‘Table ‘mysql.t1’ doesn’t exist’ on query.

因为只对mydb记录了binlog,当在mydb库操作其它数据库的表,但该表在slave上又不存在时就出错了。

如果在配置文件中忽略了该错误,则主从集群不会因为上述问题而停止工作。
在这里插入图片描述

http://www.lryc.cn/news/98435.html

相关文章:

  • 【论文阅读】DEPIMPACT:反向传播系统依赖对攻击调查的影响(USENIX-2022)
  • Nginx 功能及配置详解
  • CSS 瀑布流效果效果
  • Python 进阶(一):PyCharm 下载、安装和使用
  • 微信小程序使用ECharts的示例详解
  • 微信小程序生成二维码(weapp-qrcode)可添加logo
  • 【云原生】Docker容器资源限制(CPU/内存/磁盘)
  • 内核链表在用户程序中的移植和使用
  • 使用C#基于ComPDFKit SDK快速构建PDF阅读器
  • el-tabel导出excel表格
  • 双击start.bat文件闪退,运行报错“unable to access jarfile”
  • 大数据Flink(五十一):Flink的引入和Flink的简介
  • c语言的数据类型 -- 与GPT对话
  • Truffle 进行智能合约测试
  • vb+access库存管理系统设计与实现
  • 机器学习03-数据理解(小白快速理解分析Pima Indians数据集)
  • Hadoop生态体系-HDFS
  • 《实战AI模型》——赶上GPT3.5的大模型LLaMA 2可免费商用,内含中文模型推理和微调解决方案
  • 工程安全监测无线振弦采集仪在建筑物的应用分析
  • OpenCV实现照片换底色处理
  • 安科瑞智能型BA系列电流传感器
  • Windows SMB 共享文件夹 排错指南
  • nestjs+typeorm+mysql基本使用学习
  • echarts柱状图每根柱子添加警戒值/阈值,分段警戒线
  • 边缘提取总结
  • intellij 编辑器内性能提示
  • 手机python怎么用海龟画图,python怎么在手机上编程
  • 谈谈你对Synchronized关键字的理解及使用
  • 移动硬盘文件或目录损坏且无法读取
  • MySQL - 常用的命令