亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

主從故障處理--session 級別參數復制錯誤

標簽:
MySQL


    接受新项目,主从数据库复制同步错误,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 (具体解释可参考:http://weipengfei.blog.51cto.com/1511707/1173816)

    这个时候就可以让slave 跳过这些session设置就可以啦。

    治本的办法是改动程序,但对于一个已经三年的项目,且没有固定人员负责的项目,DBA该如何权衡呢?

©著作权归作者所有:来自51CTO博客作者位鹏飞的原创作品,如需转载,请注明出处,否则将追究法律责任

MySQL复制session数据库


點擊查看更多內容
TA 點贊

若覺得本文不錯,就分享一下吧!

評論

作者其他優質文章

正在加載中
  • 推薦
  • 評論
  • 收藏
  • 共同學習,寫下你的評論
感謝您的支持,我會繼續努力的~
掃碼打賞,你說多少就多少
贊賞金額會直接到老師賬戶
支付方式
打開微信掃一掃,即可進行掃碼打賞哦
今天注冊有機會得

100積分直接送

付費專欄免費學

大額優惠券免費領

立即參與 放棄機會
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號

舉報

0/150
提交
取消