主从故障处理--session级别参数复制错误
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了主从故障处理--session级别参数复制错误,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1712字,纯文字阅读大概需要3分钟。
内容图文
![主从故障处理--session级别参数复制错误](/upload/InfoBanner/zyjiaocheng/545/320d939861454840a229d2283e0941d0.jpg)
接受新项目,主从数据库复制同步错误,ErrorCode1292(invaliddatatype)报错SQL:updatewavesetIS_WAVED=0,LEVEL=1,SOURCE_TB_NAME=null,SOURCE_ID=null,UPDATE
接受新项目,主从数据库复制同步错误,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解析binlog
mysqlbinlog --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 (具体解释可参考:)
这个时候就可以让slave 跳过这些session设置就可以啦。
治本的办法是改动程序,但对于一个已经三年的项目,且没有固定人员负责的项目,DBA该如何权衡呢?
本文出自 “技术成就梦想” 博客,网站空间,请务必保留此出处
内容总结
以上是互联网集市为您收集整理的主从故障处理--session级别参数复制错误全部内容,希望文章能够帮你解决主从故障处理--session级别参数复制错误所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。