前言:先说一下我使用的环境和软件版本,不同的环境】版本即使相同的问题可能处理的解决方案也是不一样;网上教程太多,处理起来也很烦;
操作系统:windows10、MySQL:8.0.16 Kettle :8.2
问题描述:错误连接数据库
错误连接数据库 [本地mysql] : org.pentaho.di.core.exception.KettleDatabaseException:
Error occurred while trying to connect to the database
Driver class 'org.gjt.mm.mysql.Driver' could not be found, make sure the 'MySQL' driver (jar file) is installed.
org.gjt.mm.mysql.Driver
org.pentaho.di.core.exception.KettleDatabaseException:
Error occurred while trying to connect to the database
Driver class 'org.gjt.mm.mysql.Driver' could not be found, make sure the 'MySQL' driver (jar file) is installed.
org.gjt.mm.mysql.Driver
初步判断:驱动和需要的连接j jira包缺失;
处理方法:网上一顿骚操作;
提供几个比较好的地址可以查询下载对接的jira包都是免费开源;
https://mvnrepository.com/artifact/mysql/mysql-connector-java
MySQL :: Download Connector/J
可以参考
下载完jira包之后 将下载的jira包放置到安装kettle的lib目录下;
这是我本地安装的 :D:\soft\kettle\data-integration\lib
重启 spoon.bat
可以查看jar 包里面 是否含有drive.class 驱动 ,一般正常都会有,网上说最新的没有;
但我下载的 是有Drive.class 驱动的;也不去深究了,可能跟时间有关系
好了 重启完了 我们看效果
哈哈哈哈哈 我以为成功了 没想到报错还是跟原来一模一样 ;
思绪有点乱 别慌 ;
开始替换别的版本的jia包,然后重启、重启电脑、管理员运行、检查防火墙、数据库密码 一切都是正常 ;
先喝口水冷静冷静 ;
开始苦苦寻找解决方案,突然发现kettle中有jdbc的连接 赶紧情况不对;
于是网上重新寻觅了一下jdbc中MySQL的配置
mysql_localhost/type=javax.sql.DataSource
mysql_local/driver=com.mysql.cj.jdbc.Driver
mysql_test/url=jdbc:mysql://ip:3306/db?useUnicode=true&characterEncoding=utf-8&disableMariaDbDriver
mysql_test/user=yourname
mysql_test/password=yourpassword
开启新的操作
重新打开配置,选择 JNDI
下面就是见证激动人心的时刻了
终于可以了 ;
提几个注意点:
1、优先选择连接J jia包进行连接 ,但是部分版本可能缺失由于8.0的jar包没有提供org.gjt.mm.mysql.Driver.class文件,所以添加驱动之后,还需要修改kettle的配置文件data-integration/simple-jndi/jdbc.properties;
2、连接配置jdbc时需要注意一下 字符集 可能会出现乱码;
3、细心一点问题总能解决