前言
近期项目上经常用到ETL(数据抽取转换加载),就想到了之前用过的kettle工具,下班回家想着再玩玩这个工具吧,结果在连接MySQL时,遇到了各种问题,就顺手整理记录一下。所以今天晚上的主题是:在使用kettle ETL工具创建MySql DB连接时,由于MySQL驱动的版本原因,连接MySQL后,一直测试不通过,如下为具体解决方案
一、驱动安装方法
1、下载需要连接数据库的jar包驱动(注意版本)(MySQL驱动包下载地址)
2、将jar包驱动放到目录D:\ProgramFiles\kettle\data-integration\lib
3、重启kettle即可
二、错误描述
1、MySQL jdbc jar包版本不对或缺少jdbc jar包
错误连接数据库 [208mysql] : org.pentaho.di.core.exception.KettleDatabaseException:
Error occurred while trying to connect to the databaseDriver class 'com.mysql.cj.jdbc.Driver' could not be found, make sure the 'Generic database' driver (jar file) is installed.
com.mysql.cj.jdbc.Driver说明:官方支持的jar包是MySQL-JDBC-5.1.jar,但是直接使用后,会出现如下第二种错误
2、MySQL数据库版本高于MySQL jdbc jar包
Unknown initial character set index '255' received from server. Initial clie
三、kettle支持的MySQL jdbc jar包
从官网可以看到,官方支持的是MySQL-JDBC-5.1.jar
说明:所以如果使用了MySQL-JDBC-5.1.jar包,但是MySQL数据库版本高于此包的版本就说出现上述第一个问题
结论:由于目前MySQL安装包基本都高于此版本,所以改方案无法使用
四、解决方案一
根据上述描述可以看出,目前无法使用官方支持的jar包(MySQL-JDBC-5.1.jar),只能使用与MySQL版本一致或高于MySQL版本的jar包,如mysql-connector-j-8.2.0.jar
1、将mysql-connector-j-8.2.0.jar放置lib目录下,如下图
2、如下图配置,选择Generic database
自定义连接url:jdbc:mysql://localhost:3306/db01?useUnicode=true&characterEncoding=utf8
自定义驱动类名称:com.mysql.cj.jdbc.Driver
如下表格为自定义驱动类名称对照表
版本driver-class5.1.47以前org.git.mm.mysql.Driver6以前com.mysql.jdbc.Driver6以后com.mysql.cj.jdbc.Driver
3、验证
配置完成后,点击测试即可
五、解决方案二
1、把官方支持的jar包以及高版本jar包同时放到lib目录下
2、如下图,选择MySQL类型,并按照如下设置
3、测试
六、总结
如上是通过kettle连接MySQL时遇到的各种情况,如有错漏请大伙儿及时指出哈
版权归原作者 一起来学吧 所有, 如有侵权,请联系我们删除。