Debezium接入Mysql遇到到的Tinyint坑

问题背景:java

在Debezium作数据初始化的时候,对于一些tinyint字段的值,出现0,1的值的异常。mysql

通过源码排查,数据在JDBC上面,读取到的数据是Boolean值。sql

经过排查,原来是MYSQL特有的数据问题,须要在JDBC上面加上关键字,问题解决。get

 

JAVA数据类型 和 MYSQL的数据类型转换,要注意tinyInt 类型,且存储长度为1的状况。源码

MySQL Types to Java Types for ResultSet.getObject():it

 

在Kafka-Connect  debezium 的配置上,加上:配置

"database.tinyInt1isBit":"false",   jdbc

(PS. 其余须要在JDBC上面增长参数,能够经过 database.PARAM_NAME=XXX的方式)数据类型

 

 

 

 

 

若是tinyInt1isBit =true(默认),且tinyInt存储长度为1 ,则转为java.lang.Boolean 。数据

不然转为java.lang.Integer。

 

JDBC的URL增长 tinyInt1isBit=false参数,注意参数名区分大小写,不然不生效

jdbc:mysql://${ucmha.proxy1_2.host}/${db.mysql.db}?tinyInt1isBit=false

相关文章
相关标签/搜索