Pentaho 数据集成 SQL 连接

我正在使用 Pentaho 数据集成,我试图通过 MySQL 连接到我的数据库,但当我这样做,我得到这个错误... ..。

Error connecting to database [devdb2] : org.pentaho.di.core.exception.KettleDatabaseException:
Error occured while trying to connect to the database


Exception while loading class
org.gjt.mm.mysql.Driver




org.pentaho.di.core.exception.KettleDatabaseException:
Error occured while trying to connect to the database


Exception while loading class
org.gjt.mm.mysql.Driver




at org.pentaho.di.core.database.Database.normalConnect(Database.java:368)
at org.pentaho.di.core.database.Database.connect(Database.java:317)
at org.pentaho.di.core.database.Database.connect(Database.java:279)
at org.pentaho.di.core.database.Database.connect(Database.java:269)
at org.pentaho.di.core.database.DatabaseFactory.getConnectionTestReport(DatabaseFactory.java:86)
at org.pentaho.di.core.database.DatabaseMeta.testConnection(DatabaseMeta.java:2464)
at org.pentaho.ui.database.event.DataHandler.testDatabaseConnection(DataHandler.java:533)
at sun.reflect.GeneratedMethodAccessor55.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:329)
at org.pentaho.ui.xul.impl.AbstractXulComponent.invoke(AbstractXulComponent.java:139)
at org.pentaho.ui.xul.impl.AbstractXulComponent.invoke(AbstractXulComponent.java:123)
at org.pentaho.ui.xul.swt.tags.SwtButton.access$500(SwtButton.java:26)
at org.pentaho.ui.xul.swt.tags.SwtButton$4.widgetSelected(SwtButton.java:119)
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:378)
at org.pentaho.ui.xul.swt.tags.SwtDialog.show(SwtDialog.java:304)
at org.pentaho.di.ui.core.database.dialog.XulDatabaseDialog.open(XulDatabaseDialog.java:115)
at org.pentaho.di.ui.core.database.dialog.DatabaseDialog.open(DatabaseDialog.java:62)
at org.pentaho.di.ui.spoon.delegates.SpoonDBDelegate.newConnection(SpoonDBDelegate.java:493)
at org.pentaho.di.ui.spoon.delegates.SpoonDBDelegate.newConnection(SpoonDBDelegate.java:478)
at org.pentaho.di.ui.spoon.Spoon.newConnection(Spoon.java:7770)
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:329)
at org.pentaho.ui.xul.impl.AbstractXulComponent.invoke(AbstractXulComponent.java:139)
at org.pentaho.ui.xul.impl.AbstractXulComponent.invoke(AbstractXulComponent.java:123)
at org.pentaho.ui.xul.swt.tags.SwtMenuitem.access$100(SwtMenuitem.java:27)
at org.pentaho.ui.xul.swt.tags.SwtMenuitem$1.widgetSelected(SwtMenuitem.java:77)
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.pentaho.di.ui.spoon.Spoon.readAndDispatch(Spoon.java:1183)
at org.pentaho.di.ui.spoon.Spoon.start(Spoon.java:6966)
at org.pentaho.di.ui.spoon.Spoon.main(Spoon.java:567)
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:134)
Caused by: org.pentaho.di.core.exception.KettleDatabaseException:
Exception while loading class
org.gjt.mm.mysql.Driver


at org.pentaho.di.core.database.Database.connectUsingClass(Database.java:423)
at org.pentaho.di.core.database.Database.normalConnect(Database.java:352)
... 50 more
Caused by: java.lang.ClassNotFoundException: org.gjt.mm.mysql.Driver
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Unknown Source)
at org.pentaho.di.core.database.Database.connectUsingClass(Database.java:414)
... 51 more

如果我使用 SQLite 作为我的连接类型,它可以工作,但是当我探索它时没有返回任何数据。因此,我的问题是如何使 MySQL 工作或使用 SQLite 获取数据?

我错过了一个图书馆还是一个类?

182563 次浏览

原来我会缺少一个叫 MySQL-connect-java-5.1.2.jar 的类,我添加了这个文件夹(C: Program Files pentaho design-tools data-Integration lib) ,它可以与 MySQL 连接,我的数据和表就会显示出来。

丢失的驱动程序文件。

对于刚开始使用 PDI 的人来说,这个错误非常普遍。

驱动程序使用 pentaho 设计工具数据集成 libexJDBC for PDI。如果您正在使用 Pentaho 套件中的其他工具,则可能需要将驱动程序复制到这些工具的其他位置。作为参考,下面是其他一些设计工具的适当文件夹:

  • 聚合设计器: pentaho 设计-工具聚合-设计器驱动程序
  • 元数据编辑器: pentaho design-tools 元数据编辑器 libext JDBC
  • 报表设计器: pentaho design-tools Report-design lib jdbc
  • Schema Workbench: pentaho design-tools Schema-Workbench 驱动程序

如果此转换或作业将在其他机器上运行,例如测试或生产服务器,请不要忘记在部署时考虑复制 jar 文件并重新启动 PDI 或 Data Integration Server。

我在 Pentaho 查询 MySQL 数据库时也遇到了同样的问题。

连接数据库时出错[ Local MySQL DB ] : org.pentaho.di.core.eption. KettleDatabaseException: 试图连接数据库时出错

加载类时发生异常 Org.gjt.mm.mysql. 驱动程序

扩展@user979331的帖子解决方案是:

  1. 下载 与您的 kettle 版本兼容的 MySQLJava 连接器/驱动程序
  2. 解压缩 什么都没有文件(在我的例子中是 Mysql-Connector-java-5.1.31. zip)
  3. 。罐文件(Mysql-Connector-java-5.1.31-bin. jar)和 浆糊拷贝到 莉比文件夹中:

    C: Program Files pentaho design-tools data-Integration lib

    Mac: 应用程序/数据集成/lib

重新启动 Pentaho (数据集成)并重新测试 MySQL 连接。

来自其他人的更多有趣的回复也可能有所帮助:

除了这里的其他答案,下面是你如何在 Ubuntu (14.04)上做到这一点:

sudo apt-get install libmysql-java

这将下载 mysql-connector-java-5.x.x.jar/usr/share/java/,我相信它也会自动创建一个名为 mysql-connector-java.jar的符号链接。

然后,在 /your/path/to/data-integration/lib/中创建一个符号链接:

ln -s /usr/share/java/mysql-connector-java.jar /your/path/to/data-integration/lib/mysql-connector-java.jar

您需要下载 mysql-connector-java-5.1.46.tar.gz,而不是最新版本。Pentaho 使用的 Driver 类不包含在 mysql-connect-java-8中。Yy 版本。

上述答案是有帮助的,但由于未知的原因,他们似乎没有工作。 因此,如果您已经在系统上安装了 MySql 工作台,那么不需要下载 jar 文件并纠结于正确的版本,只需打开

C:\Program Files (x86)\MySQL\Connector J 8.0

并复制该位置的 jar 文件 mysql-connector-java-8.0.12(不管它是什么版本)并将其粘贴到 C:\Program Files\pentaho\design-tools\data-integration\lib

首先,你需要下载与 pentaho version 兼容的 Mysql 连接器,然后将其粘贴到 Data-Integration/lib 数据集成/库文件夹并重新启动 pentaho。 看看这个 Https://help.pentaho.com/documentation/8.1/setup/jdbc_drivers_reference#my_sql

目前,有一个简单的方法可以解决这个问题:

  1. 进入 ToolsMarketPlace并搜索“ PDI MySQL Plugin”
  2. 安装它(这将自动安装这里缺少的驱动程序: data-integration\plugins\databases\pdi-mysql-plugin\lib)
  3. 重启 Pentaho
  4. 成交。

为了简洁和精确,请下载兼容的 jdbc (。Jar)文件与您的 MySql版本兼容,并将其放在 lib文件夹中。 例如 MySQL 8.0.2下载 < a href = “ https://dev.MySQL.com/downloads/connect/j/”rel = “ nofollow norefrer”> Connector/J 8.0.20