解决KETTLE9 连接MYSQL 8 Error connecting to database: (using class org.gjt.mm.mysql.Driver)

1、KETTEL连接My SQL

使用KETTLE 连接MYSQL 数据库,一般步骤很简单,只需要准备好My SQL 的JDBC连接驱动;驱动下载官网地址:MySQL :: Download MySQL Connector/J (Archived Versions)(根据My SQL版本,选择合适版本的驱动);下载驱动放置于KETTL安装目录下的lib驱动库,重启KETELL。

然后,新建DB连接,选择MYSQL(Navicat方式)-> 填写主机地址、数据库、用户名、密码->测试连接,通过后确定即可;

但kettle9在常规连接mysql时出现:

解决KETTLE9 连接MYSQL 8 Error connecting to database: (using class org.gjt.mm.mysql.Driver)_第1张图片

错误提示大致为: 

 Error connecting to database: (using class org.gjt.mm.mysql.Driver) Could not create connection to database server.Error connecting to database: (using class org.gjt.mm.mysql.Driver) Could not create connection to database server. (连接到数据库时出错:(使用类org.gjt.mm.mysql.Driver)无法创建到数据库服务器的连接。org.pentaho.di.core.exception。Kettle数据库异常:尝试连接到数据库时出错连接到数据库时出o错:(使用类org.gjt.mm.mysql.Driver)无法创建到数据库服务器的连接。)

寻求可能的解决办法如:

 一:MY SQL 驱动问题

缺少mysql连接驱动,或者驱动版本问题。建议下载匹配mysql版本的驱动。驱动添加地址为:/kettle9/lib......., 以及\kettle\data-integration\lib......,重启Spoon.bat.

网络等通畅下,连接不上一般情况是驱动问题,注意检查新建DB连接的填写信息,数据库、用户名和密码等。

JDBC Driver下载地址如上文所示,或者访问我的百度网盘,里头有多种驱动。网盘地址:

链接:https://pan.baidu.com/s/15T8vLHPUNKrWDketjRkg8Q 
提取码:bkf9 

二:MY SQL 未设置时区导致:解决办法是登录mysql 修改时区为东八区:

mysql> set global max_allowed_packet=1024*1024;

mysql> set global time_zone='+8:00';

mysql>flush privileges

或者 修改my.ini文件,加入:

default-time-zone='+8:00'

再重启mysq即可连接

参考:https://blog.csdn.net/weixin_45981263/article/details/121784758

 三:MY SQL 远程访问权限未开启:

该情况是数据库不允许远程连接,或者该用户未授权远程连接。

可先尝试用Navicat等数据库连接工具先连接数据库,是否能远程连接。如不可连接,远程连接配置方法为:

my sql 8以前的版本:

    //(进入mysql)
root# mysql -u user -ppassword
    //添加root(用户)远程访问权限

mysql>GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;
    //GRANT:赋权命令
    //ALL PRIVILEGES:当前用户的所有权限
    //ON:介词
    //*.*:当前用户对所有数据库和表的相应操作权限
    //TO:介词
    //‘root’@’%’:权限赋给root用户,所有ip都能连接
    //IDENTIFIED BY ‘123456’:连接时输入密码,密码为123456
    //WITH GRANT OPTION:允许级联赋权

mysql> flush privileges;
//刷新配置

my sql 8 :

mysql>mysql -u root -pPassWord   

mysql>GRANT ALL PRIVILEGES ON *.* TO 'root'@'%'WITH GRANT OPTION;   # 授权
    //Grant all privileges on test.* to 'user'@'%';  user根据自己情况设置

mysql>FLUSH PRIVILEGES;     
//刷新

开启用户远程访问权限后再尝试kettle连接MySQL,成功!

 四:自定义连接MY SQL8 :

下载适配MySQL 8.*的连接驱动,驱动官网下载,或者上文的网盘有分享

解决KETTLE9 连接MYSQL 8 Error connecting to database: (using class org.gjt.mm.mysql.Driver)_第2张图片

 通过自定义的URL:

jdbc:mysql://host ip:3306/nqi_access?serverTimezone=GMT%2B8&autoReconnect=true&useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false

自定义驱动类:

com.mysql.cj.jdbc.Driver

解决KETTLE9 连接MYSQL 8 Error connecting to database: (using class org.gjt.mm.mysql.Driver)_第3张图片

填写数据库信息并测试连接,连接成功!

参考:kettle连接mysql8_Michael_lcf的博客-CSDN博客_kettle连接mysql8

你可能感兴趣的:(数据库,mysql,sql)