前言
近期项目上经常用到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 database
Driver 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时遇到的各种情况,如有错漏请大伙儿实时指出哈
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |