canal同步中源端数据类型为tinyint的字段同步异常-目标端值变为1

Posted 雅冰石

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了canal同步中源端数据类型为tinyint的字段同步异常-目标端值变为1相关的知识,希望对你有一定的参考价值。

一 问题描述

canal同步中有一个表t51,其中名为id2的字段数据类型为tinyint(1),发现往这个字段里插入大于1的值时,目标端该字段值都为1,和源端值不一致。

示例:

在源端执行:

INSERT INTO t51(id,id2) VALUES(1,3);

目标端t51的id2值为1,不是3。

canal client里adapter.log输出的日志能看到insert语句id2值是3,但是mariadb的binlog日志中记录的id2位1。

二 解决办法

调大该字段的长度,至少变为tinyint(2),不要设置成tinyinit(1)。

以上是关于canal同步中源端数据类型为tinyint的字段同步异常-目标端值变为1的主要内容,如果未能解决你的问题,请参考以下文章

canal同步报错:Duplicate column name ‘name2‘

canal同步报错:Duplicate column name ‘name2‘

canal同步报错Target column: NAME not matched

canal同步报错Target column: NAME not matched

canal 系列:ES中nested嵌套类型同步

Canal同步MySQL数据无法将UPDATE类型数据更新到目标MySQL的解决方案