0


【Kettle】kettle连接MySQL数据库连接不上解决方案汇总

前言

近期项目上经常用到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时遇到的各种情况,如有错漏请大伙儿及时指出哈

标签: Kettle ETL

本文转载自: https://blog.csdn.net/liuzhenhe1988/article/details/141030506
版权归原作者 一起来学吧 所有, 如有侵权,请联系我们删除。

“【Kettle】kettle连接MySQL数据库连接不上解决方案汇总”的评论:

还没有评论