web-dev-qa-db-fra.com

Connexion Pentaho Data Integration SQL

J'utilise Pentaho Data Integration et j'essaie de me connecter à ma base de données via MySQL, mais je reçois le message d'erreur suivant .....

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

Si j'ai utilisé SQLite comme type de connexion, cela fonctionne, mais aucune donnée n'est renvoyée lorsque je dois l'explorer. Ma question est donc la suivante: comment faire fonctionner MySQL ou obtenir les données avec SQLite?

Est-ce qu'il me manque une bibliothèque ou un cours?

66
user979331

Il me manque une classe appelée mysql-connector-Java-5.1.2.jar, je l'ai ajouté à ce dossier (C:\Program Files\pentaho\design-tools\data-integration\lib) et cela fonctionnait avec MySQL connexion et mes données et tableaux apparaissent.

10
user979331

Je viens de rencontrer le même problème en essayant d'interroger une base de données MySQL de Pentaho.

Erreur de connexion à la base de données [base de données MySQL locale]: org.pentaho.di.core.exception.KettleDatabaseException: une erreur s'est produite lors de la tentative de connexion à la base de données.

Exception lors du chargement de la classe org.gjt.mm.mysql.Driver

Poste étendu par @ utilisateur979331, la solution est la suivante:

  1. Télécharger le le dernier MySQL Java Connector/Driver
  2. Décompressez le fichier Zip (dans mon cas, il s'agissait de mysql-connector- Java-5.1.31.Zip )
  3. copier le fichier . jar ( mysql-connector-Java-5.1. 31-bin.jar ) et coller dans votre dossier Lib :

    PC: C:\Fichiers de programme\pentaho\outils de conception\intégration de données\lib

    Mac: /Applications/intégration de données/lib

Redémarrez Pentaho (Intégration de données) et testez à nouveau la connexion MySQL.

127
nelsonic

Fichier de pilote manquant.

Cette erreur est très courante chez les personnes qui débutent avec PDI.

Les pilotes vont dans\pentaho\design-tools\data-integration\libext\JDBC pour PDI. Si vous utilisez d'autres outils dans la suite Pentaho, vous devrez peut-être copier les pilotes vers des emplacements supplémentaires pour ces outils. Pour référence, voici les dossiers appropriés pour certains des autres outils de conception:

  • Concepteur d'agrégation:\pentaho\design-tools\aggregation-designer\drivers
  • Éditeur de métadonnées:\pentaho\design-tools\éditeur de métadonnées\libext\JDBC
  • Concepteur de rapports:\pentaho\design-tools\report-designer\lib\jdbc
  • Schema Workbench:\pentaho\outils de conception\schema-workbench\pilotes

Si cette transformation ou ce travail doit être exécuté sur une autre boîte, telle qu'un serveur de test ou de production, n'oubliez pas d'inclure la copie du fichier jar et le redémarrage de PDI ou du serveur d'intégration de données dans vos considérations de déploiement.

14
FremenFreedom

Vous devez télécharger mysql-connector-Java-5.1.46.tar.gz, pas la dernière version. La classe Driver utilisée par Pentaho n'est pas incluse dans les versions de mysql-connector-Java-8.xx.yy.

9
Dean Schulze

En plus des autres réponses ici, voici comment vous pouvez le faire sur Ubuntu (14.04):

Sudo apt-get install libmysql-Java

cela téléchargera mysql-connector-Java-5.x.x.jar à /usr/share/Java/, qui, je crois, crée aussi automatiquement un lien symbolique nommé mysql-connector-Java.jar.

Ensuite, créez un lien symbolique dans /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

7
Ryan Tuck

Les réponses ci-dessus ont été utiles, mais pour des raisons inconnues, elles ne semblaient pas fonctionner. Donc, si vous avez déjà installé MySql Workbench sur votre système, au lieu de télécharger les fichiers jar et de vous battre avec la version correcte, allez simplement à

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

et copier mysql-connector-Java-8.0.12 (peu importe la version) le fichier jar situé à cet emplacement et collez-le dans C:\Program Files\pentaho\design-tools\data-integration\lib

0
Shubham Chopra

Tout d’abord, vous devez télécharger le connecteur Mysql compatible avec votre version de Pentaho. Après cela, collez-le dans le dossier data-integration/lib et redémarrez votre pentaho. . vérifier ceci https://help.pentaho.com/Documentation/8.1/Setup/JDBC_Drivers_Reference#MY_SQL

0
PKP