kettle mysql_kettle从MySQL同步数据到mysql遇到的一些坑

bc3f9276acf88283a0569b9b9ef9ee92.png

在线QQ客服:1922638

专业的SQL Server、MySQL数据库同步软件

首先可以查看是不是缺少连接mysql所需要的jar,mysql-connector-java-5.1.47-bin.jar,如果没有的话可以去官网下载,这里方法链接。https://dev.mysql.com/downloads/connector/j/,选择平台独立,选择zip存档,下载解压缩就可以看到jar包。

在放入jar之后点击测试,然后报错了。错误代码是Access denied for user’root’@’%’to database ‘xxx’。

找了答案之后发现因为是远程数据库,所以要授予权限

刚开始以为是远程的数据库错了,然后数据库中没有对应的表,检查了发现连接的数据库是正确的,然后数据库下面也有对应的表,就一头雾水。

接着发现有的流程在表输入的步骤点击预览是可以看到数据的。

但是在执行数据同步合并的时候就找不到表了,仔细对比发现原来是表名的大小写的问题。

之前表输入的时候查询的表名是小写的,后面同步数据的时候用了大写的,然后mysql设置了大小写敏感,就找不到表了,真坑。(ps:因为建表语句是在本地导出来的,然后本地数据库没有设置大小写敏感,所以在本地是可以的。导出的表名默认是小写的,因为orcal数据用的习惯的原因,然后在步骤中用的表名都是大写,因为本地测试可用的原因就没有多想,还是要仔细啊)。

主键重复的错误,但是查了数据库表中数据是唯一的,又是一脸蒙逼。

查找之后发现是新旧数据库源的数据不一致造成的。

这个是新的数据源的查询语句。

这个是旧的数据源的查询语句。

可以看到新的数据源的数据在leixing这一列比旧的数据源多出了null的选择。

在数据库连接的编辑页面中选项一栏添加characterEncodinggbk。

https://jingyan.baidu.com/article/922554467064c8851648f4ca.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值