【问题标题】:Pentaho Data Integration SQL connectionPentaho 数据集成 SQL 连接
【发布时间】:2012-07-22 23:12:11
【问题描述】:

我正在使用 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 获取数据?

我错过了图书馆或课程吗?

【问题讨论】:

    标签: mysql pentaho


    【解决方案1】:

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

    连接数据库时出错 [本地 MySQL 数据库]:org.pentaho.di.core.exception.KettleDatabaseException: 尝试连接数据库时出错

    加载类时出现异常 org.gjt.mm.mysql.Driver

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

    1. 下载MySQL Java Connector / Driver that is compatible with your kettle version
    2. 解压缩 zip 文件(在我的例子中是 mysql-connector-java-5.1.31.zip
    3. 复制 .jar 文件 (mysql-connector-java-5.1.31-bin.jar) 并粘贴 在你的 Lib 文件夹中:

      PC: C:\Program Files\pentaho\design-tools\data-integration\lib

      Mac: /Applications/data-integration/lib

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

    其他有趣的回复也可以提供帮助:

    【讨论】:

    • 哥们,你太棒了!!
    • 我粘贴了jar文件最新连接,但错误仍然存​​在
    • @Surya 不,抱歉,这听起来可能是不同的问题。您可以尝试在 StackOverflow 上发布一个更详细的新问题(您的精确配置、Spoon 版本等),以便开发人员解决问题。
    • 你拯救了我的一天老兄,很好的答案
    • 当前最新版本没有*-bin.jar,请参考之前的版本here
    【解决方案2】:

    缺少驱动程序文件。

    这个错误对于刚开始使用 PDI 的人来说真的很常见。

    驱动程序进入 \pentaho\design-tools\data-integration\libext\JDBC 用于 PDI。如果您使用 Pentaho 套件中的其他工具,您可能需要将驱动程序复制到这些工具的其他位置。作为参考,以下是其他一些设计工具的相应文件夹:

    • 聚合设计器:\pentaho\design-tools\aggregation-designer\drivers
    • 元数据编辑器:\pentaho\design-tools\metadata-editor\libext\JDBC
    • 报表设计器:\pentaho\design-tools\report-designer\lib\jdbc
    • 架构工作台:\pentaho\design-tools\schema-workbench\drivers

    如果此转换或作业将在另一个机器上运行,例如测试或生产服务器,请不要忘记在部署注意事项中包括复制 jar 文件并重新启动 PDI 或数据集成服务器。

    【讨论】:

      【解决方案3】:

      原来我会丢失一个名为 mysql-connector-java-5.1.2.jar 的类,我将它添加到这个文件夹 (C:\Program Files\pentaho\design-tools\data-integration\lib) 并且它有效与 MySQL 连接和我的数据和表出现。

      【讨论】:

      • 从勺子工作 gr8,但在安排工作时出现问题。找不到驱动程序。我已将驱动程序包含在 tomcat\webapps\pentaho\WEB-INF\lib 中,但仍然.. 知道 mysql 驱动程序在哪个位置丢失..?
      • 我最终从文件名中删除了版本(不确定是否有帮助),然后必须按照这个答案设置 通用连接stackoverflow.com/a/52163066/349659
      • 就是这样。我得到了jar文件并解决了我的问题。谢谢
      【解决方案4】:

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

      【讨论】:

      【解决方案5】:

      除了此处的其他答案之外,您还可以在 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

      【讨论】:

        【解决方案6】:

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

        1. 转到ToolsMarketPlace 并搜索“PDI MySQL 插件”
        2. 安装(这里会自动安装缺少的驱动:data-integration\plugins\databases\pdi-mysql-plugin\lib
        3. 重启 Pentaho
        4. 完成。

        【讨论】:

        • 对于最新版本的 Pentaho (PDI),这是您需要采取的唯一步骤,它会安装所有必要的驱动程序并在重新启动后正常工作
        【解决方案7】:

        为了简洁准确,请下载与您的MySql版本兼容的兼容jdbc(.jar)文件并将其放在lib文件夹中。 例如 MySQL 8.0.2 下载Connector/J 8.0.20

        【讨论】:

          【解决方案8】:

          以上答案很有帮助,但由于未知原因,它们似乎不起作用。 因此,如果您已经在系统上安装了 MySql 工作台,则无需下载 jar 文件并为正确的版本苦苦挣扎,只需转到

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

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

          【讨论】:

            【解决方案9】:

            首先您需要下载与您的pentaho版本兼容的Mysql连接器。然后将其粘贴到data-integration/lib文件夹并重新启动您的pentaho。 检查这个 https://help.pentaho.com/Documentation/8.1/Setup/JDBC_Drivers_Reference#MY_SQL

            【讨论】:

              猜你喜欢
              • 2021-04-22
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2018-07-03
              • 2013-05-17
              • 1970-01-01
              相关资源
              最近更新 更多