问题背景: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