71

Pentaho Data Integration を使用しており、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 を使用してデータを取得する方法です。

ライブラリまたはクラスがありませんか?

4

9 に答える 9

145

PentahoからMySQLデータベースにクエリを実行しようとしたときに、同じ問題が発生しました。

データベースへの接続エラー[ローカルMySQLDB]:org.pentaho.di.core.exception.KettleDatabaseException:データベースへの接続中にエラーが発生しました

クラスorg.gjt.mm.mysql.Driverのロード中に例外が発生しました

@user979331による投稿の拡張ソリューションは次のとおりです。

  1. ケトルバージョンと互換性のあるMySQLJavaコネクタ/ドライバをダウンロードします
  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接続を再テストします。

他の人からの追加の興味深い返信も役立ちます:

  • PDIバージョンと互換性のある適切なJDBCドライバーバージョンをダウンロードすることを検討してください: https ://help.pentaho.com/Documentation/8.1/Setup/JDBC_Drivers_Reference#MY_SQL
  • zipバージョン(「プラットフォームに依存しない」)を使用してjarファイルを抽出します
  • libフォルダーに移動します
  • RyanTuckによって提案されたそれを処理する適切な方法も参照してください
于 2012-10-11T10:32:50.943 に答える
14

ドライバファイルがありません。

このエラーは、PDIを使い始めたばかりの人によく見られます。

ドライバーは、PDIの場合は\ pentaho \ design-tools \ data-integration \ libext\JDBCに移動します。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またはデータ統合サーバーの再起動を含めることを忘れないでください。

于 2012-09-18T15:02:02.203 に答える
12

mysql-connector-java-5.1.2.jarというクラスが見つからないことが判明しました。このフォルダー(C:\ Program Files \ pentaho \ design-tools \ data-integration \ lib)を追加すると、MySQLで機能しました。接続と私のデータとテーブルが表示されます。

于 2012-07-24T16:07:43.033 に答える
7

ここでの他の回答に加えて、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

于 2015-09-30T19:14:32.777 に答える
1

簡潔かつ正確にするために、 MySqlバージョンと互換性のある互換性のある jdbc (.jar) ファイルをダウンロードして、libフォルダーに配置します。たとえば、MySQL 8.0.2 ダウンロードConnector/J 8.0.20 の場合

于 2020-07-10T19:42:39.887 に答える
0

上記の回答は役に立ちましたが、理由は不明ですが、うまくいかなかったようです。そのため、システムに 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

于 2019-03-05T12:44:13.703 に答える