数据库迁移工具Kettle连接Mysql数据库报错:Driver class ‘org.gjt.mm.mysql.Driver‘ could not be found, make sure the解决

报错信息:

在这里插入图片描述

错误连接数据库 [test] : 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


	at org.pentaho.di.core.database.Database.normalConnect(Database.java:472)
	at org.pentaho.di.core.database.Database.connect(Database.java:370)
	at org.pentaho.di.core.database.Database.connect(Database.java:341)
	at org.pentaho.di.core.database.Database.connect(Database.java:331)
	at org.pentaho.di.core.database.DatabaseFactory.getConnectionTestReport(DatabaseFactory.java:80)
	at org.pentaho.di.core.database.DatabaseMeta.testConnection(DatabaseMeta.java:2783)
	at org.pentaho.ui.database.event.DataHandler.testDatabaseConnection(DataHandler.java:597)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
	at java.lang.reflect.Method.invoke(Unknown Source)
	at org.pentaho.ui.xul.impl.AbstractXulDomContainer.invoke(AbstractXulDomContainer.java:313)
	at org.pentaho.ui.xul.impl.AbstractXulComponent.invoke(AbstractXulComponent.java:157)
	at org.pentaho.ui.xul.impl.AbstractXulComponent.invoke(AbstractXulComponent.java:141)
	at org.pentaho.ui.xul.swt.tags.SwtButton.access$500(SwtButton.java:43)
	at org.pentaho.ui.xul.swt.tags.SwtButton$4.widgetSelected(SwtButton.java:137)
	at org.eclipse.swt.widgets.TypedListener.handleEvent(Unknown Source)
	at org.eclipse.swt.widgets.EventTable.sendEvent(Unknown Source)
	at org.eclipse.swt.widgets.Display.sendEvent(Unknown Source)
	at org.eclipse.swt.widgets.Widget.sendEvent(Unknown Source)
	at org.eclipse.swt.widgets.Display.runDeferredEvents(Unknown Source)
	at org.eclipse.swt.widgets.Display.readAndDispatch(Unknown Source)
	at org.eclipse.jface.window.Window.runEventLoop(Window.java:820)
	at org.eclipse.jface.window.Window.open(Window.java:796)
	at org.pentaho.di.ui.xul.KettleDialog.show(KettleDialog.java:80)
	at org.pentaho.di.ui.xul.KettleDialog.show(KettleDialog.java:47)
	at org.pentaho.di.ui.core.database.dialog.XulDatabaseDialog.open(XulDatabaseDialog.java:116)
	at org.pentaho.di.ui.core.database.dialog.DatabaseDialog.open(DatabaseDialog.java:60)
	at org.pentaho.di.ui.spoon.delegates.SpoonDBDelegate.newConnection(SpoonDBDelegate.java:485)
	at org.pentaho.di.ui.spoon.delegates.SpoonDBDelegate.newConnection(SpoonDBDelegate.java:472)
	at org.pentaho.di.ui.spoon.Spoon.newConnection(Spoon.java:8788)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
	at java.lang.reflect.Method.invoke(Unknown Source)
	at org.pentaho.ui.xul.impl.AbstractXulDomContainer.invoke(AbstractXulDomContainer.java:313)
	at org.pentaho.ui.xul.impl.AbstractXulComponent.invoke(AbstractXulComponent.java:157)
	at org.pentaho.ui.xul.impl.AbstractXulComponent.invoke(AbstractXulComponent.java:141)
	at org.pentaho.ui.xul.jface.tags.JfaceMenuitem.access$100(JfaceMenuitem.java:43)
	at org.pentaho.ui.xul.jface.tags.JfaceMenuitem$1.run(JfaceMenuitem.java:106)
	at org.eclipse.jface.action.Action.runWithEvent(Action.java:498)
	at org.eclipse.jface.action.ActionContributionItem.handleWidgetSelection(ActionContributionItem.java:545)
	at org.eclipse.jface.action.ActionContributionItem.access$2(ActionContributionItem.java:490)
	at org.eclipse.jface.action.ActionContributionItem$5.handleEvent(ActionContributionItem.java:402)
	at org.eclipse.swt.widgets.EventTable.sendEvent(Unknown Source)
	at org.eclipse.swt.widgets.Display.sendEvent(Unknown Source)
	at org.eclipse.swt.widgets.Widget.sendEvent(Unknown Source)
	at org.eclipse.swt.widgets.Display.runDeferredEvents(Unknown Source)
	at org.eclipse.swt.widgets.Display.readAndDispatch(Unknown Source)
	at org.pentaho.di.ui.spoon.Spoon.readAndDispatch(Spoon.java:1366)
	at org.pentaho.di.ui.spoon.Spoon.waitForDispose(Spoon.java:8022)
	at org.pentaho.di.ui.spoon.Spoon.start(Spoon.java:9277)
	at org.pentaho.di.ui.spoon.Spoon.main(Spoon.java:692)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
	at java.lang.reflect.Method.invoke(Unknown Source)
	at org.pentaho.commons.launcher.Launcher.main(Launcher.java:92)
Caused by: org.pentaho.di.core.exception.KettleDatabaseException: 
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

	at org.pentaho.di.core.database.Database.connectUsingClass(Database.java:515)
	at org.pentaho.di.core.database.Database.normalConnect(Database.java:456)
	... 57 more
Caused by: java.lang.ClassNotFoundException: org.gjt.mm.mysql.Driver
	at java.net.URLClassLoader.findClass(Unknown Source)
	at java.lang.ClassLoader.loadClass(Unknown Source)
	at java.lang.ClassLoader.loadClass(Unknown Source)
	at org.pentaho.di.core.database.Database.connectUsingClass(Database.java:490)
	... 58 more

主机名       : 192.168.43.253
端口           : 3306
数据库名:test

1.下载连接驱动包(根据Mysql版本下载):

Java 连接 MySQL 需要驱动包,MySQL驱动包官网下载地址:
https://dev.mysql.com/downloads/connector/j/
在这里插入图片描述
在这里插入图片描述

2.解压Java连接Mysql 8.0驱动包

  解压后取出mysql-connector-java.jar包(这里驱动包有版本号)。放到kettle的lib目录下面。

在这里插入图片描述
在这里插入图片描述

3.重启Kettle并测试连接

在这里插入图片描述
在这里插入图片描述
 可以看到现在已经连接数据库成功了!

↓↓↓↓↓↓

最近刚申请了个微信公众号,上面也会分享一些运维知识,大家点点发财手关注一波,感谢大家。 【原创公众号】:非著名运维 【福利】:公众号回复 “资料” 送运维自学资料大礼包哦!
在这里插入图片描述

### 解决方案 当遇到 `Driver class 'org.gjt.mm.mysql.Driver' could not be found` 的错误时,通常是因为缺少必要的 JDBC 驱动程序或者配置不正确。以下是详细的解决方案: #### 1. **确认使用的驱动版本** 从引用中可以看出,`org.gjt.mm.mysql.Driver` 是早期 MySQL 提供的 JDBC 驱动类名称[^4]。然而,在较新的 MySQL Connector/J 版本中(如 8.x),该类已被弃用并替换为 `com.mysql.cj.jdbc.Driver`[^5]。 如果正在使用旧版工具或框架,则需要下载支持 `org.gjt.mm.mysql.Driver` 的老版本 MySQL Connector/J(例如 5.1.x)。推荐下载稳定版本,比如 5.1.48[^5]。 --- #### 2. **下载并安装合适的驱动包** 前往官方存档页面下载适合的驱动版本: - 下载地址:[MySQL Connector/J 归档](https://downloads.mysql.com/archives/c-j/) - 推荐选择 5.1.48 或其他兼容版本。 - 将下载到的 `.jar` 文件放置于项目的依赖路径下,具体操作如下: - 如果是命令行运行项目,请将其加入 `-cp` 参数指定的 CLASSPATH 中; - 对于 IDE 开发环境(如 IntelliJ IDEA 或 Eclipse),需手动添加至项目的外部库列表; - 若是在 Kettle/Spoon 工具中使用,则应将 `.jar` 放入其插件目录下的 `lib` 子文件夹内[^3]。 --- #### 3. **验证驱动加载情况** 确保应用程序能够成功加载所需的驱动类。可以通过以下方式测试: ```java try { Class.forName("org.gjt.mm.mysql.Driver"); // 使用此语句检测是否能正常加载驱动 } catch (ClassNotFoundException e) { System.err.println("无法找到 MySQL 驱动:" + e.getMessage()); } ``` 注意:对于现代应用开发建议改用新标准驱动名 `com.mysql.cj.jdbc.Driver` 来替代过期选项。 --- #### 4. **调整连接字符串设置** 部分情况下即使引入了正确的 jar 包仍会报找不到驱动异常可能是由于 URL 格式不对引起。请参照下面模板修正您的数据库链接参数: ```plaintext jdbc:mysql://<host>:<port>/<database>?useSSL=false&serverTimezone=UTC ``` > 替换 `<host>`、`<port>` 和 `<database>` 成实际值即可[^4]。 --- #### 总结 通过以上步骤应该可以有效处理因缺失必要组件而导致的 “Driver Not Found” 类型问题。务必选用匹配当前系统的 connector/j 版本号以及保持良好的软件维护习惯定期更新第三方资源以获得更佳性能表现与安全性保障。
评论 17
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

非著名运维

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值