1、kettle 中没有连接驱动

 

1.1 问题

 
在这里插入图片描述
 

  • 报错信息:
错误连接数据库 [127.0.0.1] : 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:459)
	at org.pentaho.di.core.database.Database.connect(Database.java:357)
	at org.pentaho.di.core.database.Database.connect(Database.java:328)
	at org.pentaho.di.core.database.Database.connect(Database.java:318)
	at org.pentaho.di.core.database.DatabaseFactory.getConnectionTestReport(DatabaseFactory.java:80)
	at org.pentaho.di.core.database.DatabaseMeta.testConnection(DatabaseMeta.java:2734)
	at org.pentaho.ui.database.event.DataHandler.testDatabaseConnection(DataHandler.java:588)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	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:136)
	at org.eclipse.swt.widgets.TypedListener.handleEvent(Unknown Source)
	at org.eclipse.swt.widgets.EventTable.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.ui.xul.swt.tags.SwtDialog.show(SwtDialog.java:389)
	at org.pentaho.ui.xul.swt.tags.SwtDialog.show(SwtDialog.java:318)
	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:470)
	at org.pentaho.di.ui.spoon.delegates.SpoonDBDelegate.newConnection(SpoonDBDelegate.java:457)
	at org.pentaho.di.ui.spoon.Spoon.newConnection(Spoon.java:8750)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	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.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:1339)
	at org.pentaho.di.ui.spoon.Spoon.waitForDispose(Spoon.java:7939)
	at org.pentaho.di.ui.spoon.Spoon.start(Spoon.java:9214)
	at org.pentaho.di.ui.spoon.Spoon.main(Spoon.java:653)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	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:502)
	at org.pentaho.di.core.database.Database.normalConnect(Database.java:443)
	... 55 more
Caused by: java.lang.ClassNotFoundException: org.gjt.mm.mysql.Driver
	at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
	at org.pentaho.di.core.database.Database.connectUsingClass(Database.java:477)
	... 56 more

主机名       : 127.0.0.1
端口           : 3306
数据库名:edc


 

1.2 分析

 
根据报错信息推断,是由于kettle 中没有Mysql的连接驱动
 

1.3 解决

 

 在这里插入图片描述
 

  • 将下载的驱动压缩包解压,找到 mysql-connector-java-5.1.48.jar
     
    在这里插入图片描述
     
  • 复制到kettle 的 data-integration\lib 目录下,并替换掉原版本的驱动。
     
    在这里插入图片描述
     
  • 重启 kettle 的 Spoon.bat,一切正常。
     
    在这里插入图片描述
     

2、驱动版本不一致

 

2.1 问题

 
在这里插入图片描述

 

  • 报错信息:

Unable to close prepared statement after determining SQL layout
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'OPTION SQL_SELECT_LIMIT=DEFAULT' at line 1

 

2.2 分析

查询各种资料,是kettle中数据库链接驱动版本滞后导致。

- 查看当前kettle使用的mysql驱动版本:
 
在这里插入图片描述

 

2.3 解决方法

 

  • 对照 mysql-connector-java与mysql版本的对应关系表

 在这里插入图片描述
 
      我本地的MySQL版本是5.6.36,对应 mysql-connector-java 是5.1系列,但是我当前使用的是仍然不满足需求,所以下载5.1系列最新的驱动。
 

  • mysql-connector-java 驱动下载地址 : https://downloads.mysql.com/archives/c-j/
     
    在这里插入图片描述
     
  • 将下载的驱动压缩包解压,找到 mysql-connector-java-5.1.48.jar
     
    在这里插入图片描述
     
  • 复制到kettle 的 data-integration\lib 目录下,并替换掉原版本的驱动。
     
    在这里插入图片描述
     
  • 重启 kettle 的 Spoon.bat,一切正常。
     
    在这里插入图片描述
     
     
     
     
     
     
     
    .
Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐