暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

3623.kettle连接mysql8配置

张鹏 2024-11-12
84

3623.kettle连接mysql8配置
写这个东西主要是想吐槽为主,真的无语了。
kettle是java写的 java 版权是 oracle 的。 mysql 是 Oracle 的。
吐槽:
一般来说,在kettle中新建mysql连接时,都选择Native(JDBC)方法,这种方法虽然快捷,但是不能指定驱动类型。
kettle 默认的mysql驱动org.gjt.mm.mysql.Driver。而mysql 8.0以上connector已经不再支持这个包名。也就是说没有org.gjt.mm.mysql下的路径了。
所以在选择JDBC 方法来作mysql 连接的时候就会出现 报错 连接错误 org.gjt.mm.mysql.Driver 没找到

那么怎么办呢?
首先我们要确认我们 kettle/lib 下要有 驱动包mysql-connector-java-XXX XXX代表版本号
没有的话可以去下载一个 :
https://mvnrepository.com/artifact/mysql/mysql-connector-java
这个时候你要是下载对应版本的你就会发现没有org.gjt.mm.mysql

因为mysql 8之后的版本都是com.mysql.cj.jdbc.Driver 这个了

下边这个是 5.1.46版本的也就是有org路径的演示

到这里一些东西就很清楚了。
所以解决方法如下:
方法一(我就是头铁):
头铁的我就是用 Oracle那套,那没问题。 你在kettle/lib 下用 有org.gjt.mm.mysql 驱动的不就行了嘛,所以我 将MySQL 5.1.46的驱动 下载到 kettle/lib 下。将之前的连接配置删除 具体应该是 c盘的user 下有个 .kettle 的配置文件按照自己的来哈
重启启动spoon.bat 选择MySQL JDBC .
 
  没错它成功了。
  没错它是没问题了,但是我们是mysql 8哎,强迫症的我就又开始了新的操作。
  方法二(我暂时屈服了):
  我在网站上下载了对应版本的 mysql-connector-java-8.0.30 ,那问题出现了,如果我选JDBC 肯定不行了,它默认是 org.gjt.mm.mysql,这个8.0的jar包没有啊!!!
  所以我们选择另外一种连接方式 JNDI
  这种方式呢我们在界面上只要配置名字就可以了,实际的操作其实需要手动配置的
  找到kettle 安装位置的:Kettle\simple-jndi\下边有个 jdbc.properties 配置文件

我们打开它,将 MySQL的配置加上,其中 红框的位置注意下

#mysql的的配置
MYSQL8_DB/type=javax.sql.DataSource
MYSQL8_DB/driver=com.mysql.cj.jdbc.Driver
MYSQL8_DB/url=jdbc:mysql://localhost:3306/kettle?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=GMT
MYSQL8_DB/user=kettle
MYSQL8_DB/password=kettle
  根据自己的数据库配置来哈
  界面就简单了,只要注意下名字跟 jdbc 中的那个名字一致就可以了。

这样就成功了。
方法三:
这个方法怎么说呢,感觉有点多余。除非你有特殊需求。如果你是第一次创建连接还是用 方法二,再不济用方法一,因为这个方法没法在MySQL的源数据库中创建kettle的元数据表,就是R_ 等等表
这个就是用通用数据库 Generic database
注意是自己的库
自定义连接URL :
dbc:mysql://localhost:3306/kettle?useUnicode=true&characterEncoding=UTF-    8&useSSL=false&serverTimezone=Asia/Shanghai&zeroDateTimeBehavior=CONVERT_TO_NULL

通用配置:
dbc:mysql://localhost:3306/kettle?useUnicode=true&characterEncoding=UTF-8&useServerPrepStmts=false&rewriteBatchedStatements=true&useCursorFetch=true&netTimeoutForStreamingResults=3600

自定义驱动类:
(MySQL8 跟MySQL 5 版本不同 驱动类 不同,下面这个适用于MySQL 8 )
com.mysql.cj.jdbc.Driver

如果你是第一次的话,你用SpoonConsole.bat 运行的时候就会发现 提示你
  :此数据库类型不支持作为存储库

怎么说呢感觉有了方法二之后这个就有点鸡肋了,但也写出来吧。
好了这三种方法都是实测有效的。
如果你要换别的,比如 MySQL 换oracle 之类的。记得把 c盘的user 下有个 .kettle 的配置文件 删除 。一般是 C:user 或者是 C:用户 再往下找 ,因为我是宏碁笔记本,所以我是 acer ,有的到这里就可以找到了。我呢是还要点开 acer 找到 .kettle

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论