Welcome 微信登录

首页 / 数据库 / MySQL / MySQL主从故障处理--session 级别参数复制错误

接受新项目,主从数据库复制同步错误,Error Code  1292 (invalid datatype)报错SQL:update wave set IS_WAVED = 0,LEVEL = 1,SOURCE_TB_NAME = null,SOURCE_ID = null,UPDATE_TIME = "2013-03-10 02:13:36.0" where PLAYER_ID = 80406 and TYPE = 0;时间格式肯定不对,查看服务器SQL_MODE 发现为空。这就奇怪啦,默认情况下MySQL会将其转换为正确格式;查看master该条记录情况,没有发生变化,由于Myisam存储引擎的原因,在该SQL执行错误时没有进行回滚删除binlog内容,(以后还是用Innodb吧!!)mysqlbinlog解析binlogmysqlbinlog --start-datetime="2013-04-11 08:37:56" --stop-datetime="2013-04-11 08:45:56" localhost-bin.001882 > /tmp/1.txt发现该类似的语句全部执行成功,为什么唯独这个错误的 时间格式没有转换呢?在binlog中发现以下线索:SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=1, @@session.unique_checks=1/*!*/;SET @@session.sql_mode=2097152/*!*/;可以确定的错以上是由某工具或框架设定的。下面我们看看这个session中 sql_mode的值;set sql_mode=2097152;mysql> show variables like "%sql_mode%";+---------------+---------------------+
| Variable_name | Value |
+---------------+---------------------+
| sql_mode | STRICT_TRANS_TABLES |
+---------------+---------------------+在session中 sql_mode 被设置为 STRICT_TRANS_TABLES (具体解释可参考:http://www.linuxidc.com/Linux/2013-04/82426.htm)这个时候就可以让slave 跳过这些session设置就可以啦。治本的办法是改动程序,但对于一个已经三年的项目,且没有固定人员负责的项目,DBA该如何权衡呢?MySQL复制之时区问题MySQL 死锁检测相关资讯      MySQL主从 
  • MySQL主从环境下存储过程,函数,  (今 07:26)
  • 在 CentOS7 上部署 MySQL 主从  (08月20日)
  • 恢复MySQL主从数据一致性的总结  (12/29/2015 22:14:15)
  • XtraBackup构建MySQL主从环境  (09月01日)
  • MySQL主从失败使用bin-log恢复  (02月20日)
  • MySQL5.6 主从复制配置  (12/21/2015 19:10:09)
本文评论 查看全部评论 (0)
表情: 姓名: 字数