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时出现:
错误提示大致为:
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.*的连接驱动,驱动官网下载,或者上文的网盘有分享
通过自定义的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
填写数据库信息并测试连接,连接成功!
参考:kettle连接mysql8_Michael_lcf的博客-CSDN博客_kettle连接mysql8