zoukankan      html  css  js  c++  java
  • 一个奇怪的问题:Last_Errno: 1264 Error 'Out of range value for column 0x322E36343030

    场景环境:

      1. 主从都是:Server version: 5.7.16-log MySQL Community Server (GPL)

      2.操作系统:CentOS release 6.7 (Final)

      3.业务端通过SAS软件,向改主库中批量写入几百条数据。

    接到报警,发现从库show slave status G; 有如下报警

    Last_Errno: 1264
    Last_Error: Error 'Out of range value for column 'loan_amount' at row 1' on query. Default database: 'chedai'. Query: 'INSERT INTO test_list2 (loan_amount,APPLYUSERGROUPID,lastapplyid,validdate)  VALUES ( 0x322E3634303030303030303030303030303030652B303035 , 0x3131313130313234 , 0x392E3839353230393030303030303030303030652B303036 , 0x323031382D30352D3331 )'
    Skip_Counter: 0
    View Code

    从库在应用主库binlog时,发现实际value超过字段定义长度。但疑问时:为什么主库能成功执行,从库就报错。

    从主库查到已经成功插入的数据表为:

    +-------------+------------------+-------------+------------+
    | loan_amount | APPLYUSERGROUPID | lastapplyid | validdate |
    +-------------+------------------+-------------+------------+
    | 264000 | 11110124 | 9895209 | 2018-05-31 |
    | 80000 | 11110122 | 9896660 | 2018-05-31 |
    | 216000 | 11111162 | 9900036 | 2018-05-31 |
    | 208000 | 11143122 | 9907101 | 2018-05-31 |
    | 176000 | 11121775 | 9922122 | 2018-05-31 |
    | 110000 | 11111804 | 9928679 | 2018-05-31 |
    | 68800 | 11110963 | 9941918 | 2018-05-31 |
    | 68000 | 11143124 | 9944861 | 2018-05-31 |
    | 50000 | 11111164 | 9949087 | 2018-05-31 |
    | 54000 | 11121640 | 9951020 | 2018-05-31 |
    +-------------+------------------+-------------+-----------

    解析对应的binlog,确实所有的value都变成了16进制,截图如下:

    疑点:为什么mysqlbinlog解析出来value是16进制的。同时也匹配上了slave上的报错信息。

    想到这个库的binlog_format设置的是mixed,第一想法是如果改为ROW格式,是否可以规避这个问题呢,如果做了如下测试:

    1. mysql>set global binlog_format=row;

    2. 叫研发侧的同学按原步骤,重新写入数据。

    3.解析对应binlog,结果如下:

    至此,mysqlbinlog能正常解析出来,与此同时slave也正常同步上了。

    结论:本次环境通过修改binlog_format=row,成功规避掉的了这个问题。同时也建议生产环境设置该参数为row,但是具体是什么原因导致的,之前有文章提到是jdbc版本和mysql server版本兼容的问题,详见:

    http://www.itpub.net/forum.php?mod=viewthread&action=printable&tid=1402633

  • 相关阅读:
    A bon chat, bon rat
    获取信息mysql
    Lua笔记3 表达式
    libevent2编译
    opencv环境搭建
    bash console
    Unix Notes.
    ubuntu vsftpd
    axis2客户端代码生成
    IDEA 快捷键
  • 原文地址:https://www.cnblogs.com/yiyuf/p/8961599.html
Copyright © 2011-2022 走看看