78 votes

Connexion SQL à Pentaho Data Integration

J'utilise Pentaho Data Integration et j'essaie de me connecter à ma base de données via MySQL mais lorsque je le fais, j'obtiens cette erreur...

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 l'explore. Ma question est donc la suivante : comment faire fonctionner MySQL ou obtenir les données en utilisant SQLite ?

Est-ce que je rate une bibliothèque ou un cours ?

155voto

nelsonic Points 2252

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

Erreur de connexion à la base de données [Local MySQL DB] : 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

Développant le post de @user979331 la solution est :

  1. Descargar el Connecteur / Pilote MySQL Java qui est compatible avec la version de votre bouilloire
  2. Dézipper el zip (dans mon cas, c'était mysql-connector-java-5.1.31.zip )
  3. copie el .jar fichier ( mysql-connector-java-5.1.31-bin.jar ) et pâte dans votre Lib dossier :

    PC : C:\Program Archivos \pentaho\design -outils \data -intégration \lib

    Mac : /Applications/data-integration/lib

Redémarrez Pentaho (Data Integration) et testez à nouveau la connexion MySQL.

Autres réponses intéressantes d'autres qui pourraient aussi aider :

1 votes

Savez-vous quel serait le dossier correspondant pour le serveur BI ?

1 votes

Mec, tu es génial !

4 votes

J'ai collé le fichier jar dans la dernière connexion mais l'erreur persiste.

15voto

FremenFreedom Points 410

Fichier pilote manquant.

Cette erreur est très fréquente pour les personnes qui débutent avec PDI.

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

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

Si cette transformation ou ce travail doit être exécuté sur une autre boîte, comme 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 Data Integration Server dans vos considérations de déploiement.

13voto

user979331 Points 795

Il s'avère que je vais manquer une classe appelée mysql-connector-java-5.1.2.jar, je l'ai ajouté ce dossier ( C:\Program Archivos \pentaho\design -outils \data -intégration \lib ) et cela a fonctionné avec une connexion MySQL et mes données et tables apparaissent.

1 votes

Cela fonctionne très bien depuis la cuillère, mais il y a un problème lors de la planification du travail, je ne trouve pas le dirver, j'ai inclus le pilote dans tomcat. \webapps\pentaho\WEB -INF \lib mais toujours .... Une idée de l'endroit où le pilote mysql est absent ?

1 votes

J'ai fini par supprimer la version du nom du fichier (je ne sais pas si cela a aidé), puis j'ai dû mettre en place un fichier Connexion générique à la suite de cette réponse : stackoverflow.com/a/52163066/349659

1 votes

C'est ça. J'ai obtenu le fichier jar et résolu mon problème. Merci.

10voto

Dean Schulze Points 2408

Vous devez télécharger mysql-connector-java-5.1.46.tar.gz et non la dernière version. La classe Driver que Pentaho utilise n'est pas incluse dans les versions mysql-connector-java-8.xx.yy.

1 votes

C'est ici que vous pouvez trouver toutes les versions précédentes : ftp.iij.ad.jp/pub/db/mysql/Téléchargements/Connecteur-J

7voto

Ryan Tuck Points 1779

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

sudo apt-get install libmysql-java

ceci va télécharger mysql-connector-java-5.x.x.jar a /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

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X