Соединение SQL Pentaho Data Integration

Я использую 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?

Мне не хватает библиотеки или класса?


person user979331    schedule 24.07.2012    source источник


Ответы (9)


Я только что столкнулся с той же проблемой, когда пытался запросить базу данных MySQL из Pentaho.

Ошибка подключения к базе данных [локальная база данных MySQL]: org.pentaho.di.core.exception.KettleDatabaseException: произошла ошибка при попытке подключения к базе данных

Исключение при загрузке класса org.gjt.mm.mysql.Driver

Расширяя сообщение @ user979331, решение:

  1. Загрузите MySQL Java Connector / Driver совместимый с версией вашего чайника
  2. Разархивируйте файл zip (в моем случае это был mysql-connector-java-5.1.31.zip).
  3. скопируйте файл .jar (mysql-connector-java-5.1.31-bin.jar) и вставьте его в папке Lib:

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

    Mac: / Applications / data-integration / lib.

Перезапустите Pentaho (интеграция данных) и повторно протестируйте соединение MySQL.

Дополнительные интересные ответы от других, которые также могут помочь:

  • подумайте о том, чтобы загрузить хорошую версию драйвера JDBC, совместимую с вашей версией PDI: https://help.pentaho.com/Documentation/8.1/Setup/JDBC_Drivers_Reference#MY_SQL
  • возьмите zip-версию ("платформенно-независимую"), чтобы извлечь файл jar
  • взять в папку lib
  • см. также правильный способ справиться с этим, предложенный Райаном Таком
person nelsonic    schedule 11.10.2012
comment
знаете ли вы, в какой папке будет находиться BI-сервер? - person decal; 12.06.2013
comment
Чувак, ты молодец !! - person Stormsson; 17.09.2013
comment
Я вставил последнее соединение с файлом jar, но ошибка все еще сохраняется - person noobie-php; 29.10.2013
comment
@ noobie-php Можно ли подключиться к MySQL из командной строки или через другой интерфейс администратора? - person nelsonic; 02.11.2013
comment
Работает gr8 с ложки, но проблема с графиком работы. Не могу найти режиссера. Я включил драйвер в tomcat \ webapps \ pentaho \ WEB-INF \ lib, но все же .... Есть идеи, где отсутствует драйвер mysql ..? - person Surya; 07.04.2014
comment
@Surya нет, извините, похоже, что это другая проблема. вы можете попробовать опубликовать новый вопрос здесь, в StackOverflow, с более подробной информацией (ваша точная конфигурация, версия Spoon и т. д.), чтобы разработчики могли устранить проблему. - person nelsonic; 18.06.2014
comment
Просто добавьте эту проблему в OS X Yosemite. Я добавляю для установки в /Application/Pentaho Report Designer.app/lib, и это сработало. - person mb14; 05.02.2015
comment
У меня это работает. Ваши указания лучше, чем у самого pentaho, который говорит, что папка - это lebext / JDBC /, а не lib /: infocenter.pentaho.com/help48/ - person jgomo3; 12.02.2016
comment
ты спас мне день чувак, отличный ответ - person jemsnaban; 31.03.2016
comment
В настоящее время последняя версия не имеет * -bin.jar, поэтому обратитесь к предыдущей версии здесь. - person Nae; 29.06.2018
comment
Ссылка @Nae решает проблему с последней версией коннектора Mysql. Ткс! - person jfneis; 17.09.2018
comment
... это 2020 год, и он все еще актуален - person 6opko; 07.01.2020
comment
Сэкономил мне время. Спасибо!! - person thatsallfolks; 10.12.2020

Отсутствует файл драйвера.

Эта ошибка действительно часто встречается у людей, только начинающих работать с PDI.

Драйверы находятся в \ pentaho \ design-tools \ data-integration \ libext \ JDBC for 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 или сервера интеграции данных в свои соображения по развертыванию.

person FremenFreedom    schedule 18.09.2012

Оказывается, мне не хватает класса mysql-connector-java-5.1.2.jar, я добавил его в эту папку (C: \ Program Files \ pentaho \ design-tools \ data-integration \ lib), и он работал с MySQL соединение и мои данные и таблицы появляются.

person user979331    schedule 24.07.2012
comment
Работает gr8 с ложки, но проблема с расписанием работы. Не удается найти dirver. Я включил драйвер в tomcat \ webapps \ pentaho \ WEB-INF \ lib, но все же .... Есть идеи, в каком месте драйвер mysql отсутствует ..? - person Surya; 07.04.2014
comment
В итоге я удалил версию из имени файла (не уверен, что это помогло), после чего мне пришлось настроить Generic Connection после этого ответа: stackoverflow.com/a/52163066/349659 - person CTS_AE; 22.08.2019
comment
Вот и все. Я получил файл jar и решил свою проблему. Спасибо - person thatsallfolks; 10.12.2020

Вам необходимо скачать mysql-connector-java-5.1.46.tar.gz, а не последнюю версию. Класс драйвера, который использует Pentaho, не включен в версии mysql-connector-java-8.xx.yy.

person Dean Schulze    schedule 21.07.2018
comment
Здесь вы можете найти все предыдущие версии: ftp. iij.ad.jp/pub/db/mysql/Downloads/Connector-J - person Talha Imam; 18.10.2018

В дополнение к другим ответам здесь вот как вы можете сделать это в 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

person ryantuck    schedule 30.09.2015

В настоящее время есть простой способ решить эту проблему:

  1. Перейдите к ToolsMarketPlace и найдите "PDI MySQL Plugin"
  2. Установите его (здесь автоматически установится отсутствующий драйвер: data-integration\plugins\databases\pdi-mysql-plugin\lib)
  3. Перезагрузите Пентахо
  4. Выполнено.
person h3t1    schedule 05.05.2020
comment
Для последних версий Pentaho (PDI) это единственный шаг, который вам нужно сделать, он устанавливает все необходимые драйверы и отлично работает после перезагрузки. - person Efrain Plaza; 09.10.2020

Вышеупомянутые ответы были полезны, но по неизвестным причинам они, похоже, не работали. Итак, если вы уже установили рабочую среду 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

person Shubham Chopra    schedule 05.03.2019

Прежде всего вам необходимо загрузить соединитель Mysql, совместимый с вашей версией pentaho. После этого вставьте его в папку data-integration / lib и перезапустите pentaho. проверьте это https://help.pentaho.com/Documentation/8.1/Setup/JDBC_Drivers_Reference#MY_SQL

person Primit    schedule 05.08.2019

Чтобы быть кратким и точным, скачайте совместимый файл jdbc (.jar), совместимый с вашей версией MySql, и поместите его в папку lib. Например, для MySQL 8.0.2 загрузите Connector / J 8.0.20

person Hamed Sanaei    schedule 10.07.2020