MySQL 跳过同步错误方法

最近MySQL 遇到了同步问题,现整理一下常遇到的错误的解决方法,备用。

方法一:手动设置动态参数 sql_slave_skip_counter

我常用的脚本:

stop slave sql_thread;set global sql_slave_skip_counter=1;start slave sql_thread;

这个要 根据具体的错误来判定,一般用于主键冲突或者更新失败错误,进行手动跳过。

方法二:静态服务器设置,需要重启MySQL
[mysqld]
slave_skip_errors=1032,1064
重启MySQL之后,会自动加载配置文件,同步自动跳过更新,与主键冲突错误。
参数说明:
Normally, replication stops when an error occurs on the slave. 
This gives you the opportunity to resolve the inconsistency in the data manually.
This variable tells the slave SQL thread to continue replication when a statement returns any of the errors listed in the variable value.

方法三:动态设置跳过错误
slave_exec_mode
这个比较狠
set global slave_exec_mode =strict;
严格执行策略。大多数情况下遇到错误,同步就会终止。等待错误解决。

set global slave_exec_mode =idempotent;
这个设置,可以允许同步跳过 
duplicate-key and no-key-found错误

参数说明:
Controls whether IDEMPOTENT or STRICT mode is used in replication conflict resolution and error checking. 
IDEMPOTENT mode causes suppression of some errors, including duplicate-key and no-key-found errors. Beginning with MySQL 5.1.23-ndb-6.2.14 and MySQL 5.1.24, this mode should be employed in multi-master replication, circular replication, and some other special replication scenarios. 
STRICT mode is the default, and is suitable for most other cases

时间: 2024-10-03 03:32:35

MySQL 跳过同步错误方法的相关文章

mysql主从不一致解决方法

方法一:忽略错误后,继续同步 该方法适用于主从库数据相差不大,或者要求数据可以不完全统一的情况,数据要求不严格的情况 stop slave; #表示跳过一步错误,后面的数字可变 set global sql_slave_skip_counter =1; start slave; 查看slave状态 mysql> show slave status; 方法二:从新做主从 解决步骤如下: 1.先进入主库,进行锁表,防止数据写入 使用命令: mysql> flush tables with read

Mysql主从库同步错误:1062 Error 'Duplicate entry '1438019'

mysql主从库同步错误:1062 Error 'Duplicate entry '1438019' for key 'PRIMARY'' on query mysql主从库在同步时会发生1062 Last_SQL_Error: Error ‘Duplicate entry ‘的问题: 显然这个问题是因为插入重复主键导致从库不工作了,错误消息如下 mysql> show slave status\G; *************************** 1. row ************

MYSQL 更改datadir的方法

环境:ubuntu 12.04  apt-get安装的mysql 原因:考虑到以后数据库会日益变大,需要把数据的datadir改到空间比较大的数据磁盘上. 环境需要把datadir存储到/mnt/mysql_data/mysql下 /mnt已经挂载了大的磁盘分区 首先停掉mysql,挂载好磁盘. 1:修改/etc/mysql/my.cnf 修改datadir=/mnt/mysql_data/mysql 2:给予文件夹权限,copy 需要把/var/lib/mysql 复制到/mnt/mysql_

将SQL Server 2000数据导入到MySQL 5.5的方法

一.安装MySQL 5.5(可以与SQL Server不在同一台服务器上),并新建一个空的数据库(一般用utf-8编码),用于接收导入的数据. 二.在SQL Server的服务器上安装mysql-connector-odbc-5.3.2-win32. 三.在SQL Server的服务器上运行"管理工具"->"数据源(ODBC)",切换到"系统DSN"面板,添加"MySQL ODBC 5.3 Unicode Driver"

18 MySQL数据导入导出方法与工具介绍之二

批处理是一种非交互式运行mysql程序的方法,如同您在mysql中使用的命令一样,你仍然将使用这些命令. 为了实现批处理,您重定向一个文件到mysql程序中,首先我们需要一个文本文件,这个文本文件包含有 与我们在mysql中输入的命令相同的文本.比如我们要插入一些数据,使用包含下面文本的文件(文件名为New_Data.sql,当然我们也可以取名为 New_Data.txt及任何其他的合法名字,并不一定要以后缀sql结尾):USE Meet_A_Geek;INSERT INTO Customers

Spring、Ibatis结合MySQL数据库的使用方法

Ibatis是MyBatis的前身,它是一个开源的持久层框架.它的核心是SqlMap--将实体Bean跟关系数据库进行映射,将业务代码和SQL语句的书写进行分开.Ibatis是"半自动化"的ORM持久层框架.这里的"半自动化"是相对Hibernate等提供了全面的数据库封装机制的"全自动化"ORM实现而言的,"全自动"ORM实现了POJO与数据库表字段之间的映射并且实现了SQL的自动生成和执行.而Ibatis的着力点,则在于P

mysql 安装错误 解决方法

错误及警告信息:TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option 解决方法:需要在my.cnf里面加入下面的参数:explicit_defaults_for_timestamp=true 错误及警告信息:Can't find messagefile '/usr/share/mysql/errmsg.sys 解决方法:需要在m

js跳转页面方法大全

js跳转页面方法大全<span id="tiao">3</span><a href="javascript:countDown"></a>布丁足迹;秒后自动跳转--<meta http-equiv=refresh content=3;url='/search/billsearch.jsp'</ul> <!--脚本开始--> <script language="javascr

js中页面刷新和页面跳转的方法总结 [ 转自欢醉同学 ]

.js中cookie的基本用法简介 2009-12-15 js中页面刷新和页面跳转的方法总结 文章分类:Web前端 关键字: javascript js中页面刷新和页面跳转的方法总结 1.history.go(-1), 返回两个页面: history.go(-2); 2. history.back(). 3. window.history.forward()返回下一页 4. window.history.go(返回第几页,也可以使用访问过的URL) 例: <a href="javascri