Подключить Pentaho к MS SQL Server (собственный)

Я очень новичок в использовании PENTAHO. Мне нужно подключить это программное обеспечение к MS SQL Server (Native). Я уже много раз пытался его подключить, но каждый раз, когда я проверял соединение, мне это не удавалось. Это сообщение об ошибке появляется каждый раз, когда я проверяю соединение.

Error connecting to database [sutera] : 
org.pentaho.di.core.exception.KettleDatabaseException: 
Error occured while trying to connect to the database

Error connecting to database: (using class   

com.microsoft.sqlserver.jdbc.SQLServerDriver)

The TCP/IP connection to the host 172.16.1.133, port 1433 has failed. Error: "connect timed out. Verify the connection properties, check that an instance of SQL Server is running on the host and accepting TCP/IP connections at the port, and that no firewall is blocking TCP connections to the port.".


org.pentaho.di.core.exception.KettleDatabaseException: 
Error occured while trying to connect to the database

Error connecting to database: (using class com.microsoft.sqlserver.jdbc.SQLServerDriver)
The TCP/IP connection to the host 172.16.1.133, port 1433 has failed. Error: "connect timed out. Verify the connection properties, check that an instance of SQL Server is running on the host and accepting TCP/IP connections at the port, and that no firewall is blocking TCP connections to the port.".


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.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.swing.tags.SwingButton$OnClickRunnable.run(SwingButton.java:58)
at java.awt.event.InvocationEvent.dispatch(Unknown Source)
at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
at java.awt.EventQueue.access$200(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.WaitDispatchSupport$2.run(Unknown Source)
at java.awt.WaitDispatchSupport$4.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.awt.WaitDispatchSupport.enter(Unknown Source)
at java.awt.Dialog.show(Unknown Source)
at java.awt.Component.show(Unknown Source)
at java.awt.Component.setVisible(Unknown Source)
at java.awt.Window.setVisible(Unknown Source)
at java.awt.Dialog.setVisible(Unknown Source)
at org.pentaho.ui.xul.swing.tags.SwingDialog.show(SwingDialog.java:234)
at org.pentaho.reporting.ui.datasources.jdbc.ui.XulDatabaseDialog.open(XulDatabaseDialog.java:256)
at org.pentaho.reporting.ui.datasources.jdbc.ui.ConnectionPanel$EditDataSourceAction.actionPerformed(ConnectionPanel.java:162)
at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
at java.awt.AWTEventMulticaster.mouseReleased(Unknown Source)
at java.awt.AWTEventMulticaster.mouseReleased(Unknown Source)
at java.awt.Component.processMouseEvent(Unknown Source)
at javax.swing.JComponent.processMouseEvent(Unknown Source)
at java.awt.Component.processEvent(Unknown Source)
at java.awt.Container.processEvent(Unknown Source)
at java.awt.Component.dispatchEventImpl(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Window.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
at java.awt.EventQueue.access$200(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue$4.run(Unknown Source)
at java.awt.EventQueue$4.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.WaitDispatchSupport$2.run(Unknown Source)
at java.awt.WaitDispatchSupport$4.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.awt.WaitDispatchSupport.enter(Unknown Source)
at java.awt.Dialog.show(Unknown Source)
at java.awt.Component.show(Unknown Source)
at java.awt.Component.setVisible(Unknown Source)
at java.awt.Window.setVisible(Unknown Source)
at java.awt.Dialog.setVisible(Unknown Source)
at org.pentaho.reporting.libraries.designtime.swing.CommonDialog.performEdit(CommonDialog.java:156)
at org.pentaho.reporting.ui.datasources.jdbc.ui.JdbcDataSourceDialog.performConfiguration(JdbcDataSourceDialog.java:759)
at org.pentaho.reporting.ui.datasources.jdbc.JdbcDataSourcePlugin.performEdit(JdbcDataSourcePlugin.java:67)
at org.pentaho.reporting.designer.core.actions.report.AddDataFactoryAction.actionPerformed(AddDataFactoryAction.java:79)
at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
at javax.swing.AbstractButton.doClick(Unknown Source)
at javax.swing.plaf.basic.BasicMenuItemUI.doClick(Unknown Source)
at javax.swing.plaf.basic.BasicMenuItemUI$Handler.mouseReleased(Unknown Source)
at java.awt.AWTEventMulticaster.mouseReleased(Unknown Source)
at java.awt.Component.processMouseEvent(Unknown Source)
at javax.swing.JComponent.processMouseEvent(Unknown Source)
at java.awt.Component.processEvent(Unknown Source)
at java.awt.Container.processEvent(Unknown Source)
at java.awt.Component.dispatchEventImpl(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Window.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
at java.awt.EventQueue.access$200(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue$4.run(Unknown Source)
at java.awt.EventQueue$4.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)
Caused by: org.pentaho.di.core.exception.KettleDatabaseException: 
Error connecting to database: (using class com.microsoft.sqlserver.jdbc.SQLServerDriver)
The TCP/IP connection to the host 172.16.1.133, port 1433 has failed. Error: "connect timed out. Verify the connection properties, check that an instance of SQL Server is running on the host and accepting TCP/IP connections at the port, and that no firewall is blocking TCP connections to the port.".

at org.pentaho.di.core.database.Database.connectUsingClass(Database.java:504)
at org.pentaho.di.core.database.Database.normalConnect(Database.java:352)
... 122 more
Caused by: com.microsoft.sqlserver.jdbc.SQLServerException: The TCP/IP connection to the host 172.16.1.133, port 1433 has failed. Error: "connect timed out. Verify the connection properties, check that an instance of SQL Server is running on the host and accepting TCP/IP connections at the port, and that no firewall is blocking TCP connections to the port.".
at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDriverError(SQLServerException.java:170)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:104
         9)
at 
    com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:833)
at                                          
    com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:716)
at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:841)
at java.sql.DriverManager.getConnection(Unknown Source)
at java.sql.DriverManager.getConnection(Unknown Source)
at org.pentaho.di.core.database.Database.connectUsingClass(Database.java:478)
... 123 more

Может ли кто-нибудь помочь мне решить эту проблему? Мне действительно нужна твоя помощь. общее качество


person crystal    schedule 07.01.2014    source источник
comment
Чтобы подключиться к SQL Server в основном режиме, Java должен иметь возможность найти файл sqlauth.dll. Я решил эту проблему, изменив файл ложки.bat и указав там путь к файлу sqlauth.dll. Я думаю, что есть гораздо лучший способ сделать это, но я еще не пробовал. Вы уверены, что хост и порт указаны правильно?   -  person Brian.D.Myers    schedule 07.01.2014
comment
Да, я уверен, что хост и порт верны. Можете ли вы показать мне, как вы решаете эту проблему? Я очень новичок в использовании этого программного обеспечения. Я просто выучил его за 3 дня.   -  person crystal    schedule 07.01.2014


Ответы (8)


Integrated Security Setup

Чтобы подключиться к базе данных со встроенной защитой, необходимо выполнить следующие шаги:

  • Загрузите драйверы Microsoft JDBC 4.2 на https://www.microsoft.com/en-us/download/details.aspx?id=11774
  • Разархивируйте пакет во временную директорию
  • Закрыть ложку
  • Скопируйте «‹временный каталог›\sqljdbc_4.2\enu\auth\x86\sqljdbc_auth.dll» в «C:\Program Files (x86)\Java\jre1.8.0_73\bin» (32-разрядная версия)

  • Скопируйте '‹временный каталог›\sqljdbc_4.2\enu\sqljdbc42.jar' в '‹папку установки Kettle›\data-integration\lib'
  • Открытая ложка
  • Тестовое соединение в ложке
  • Удалить временный каталог

Если вы обновляете драйвер Kettle, Java, JDBC до более поздней версии, вам необходимо повторить вышеуказанные шаги.

person Bart VdA    schedule 21.03.2016
comment
Установка Java в папку, независимую от версии, предотвращает копирование файла для каждого обновления Java. - person Bart VdA; 08.07.2017
comment
Также работает с драйвером Microsoft JDBC для SQL Server 6 и 8, только структура папок немного отличается. docs.microsoft.com/en-us/sql/connect/jdbc/ - person Bart VdA; 26.05.2020

Вот что помогло мне подключить Pentaho PDI к Microsoft SQL Server:

  1. Загрузите официальный драйвер Microsoft JDBC для SQL Server (v4.0) с здесь.

  2. Он поставляется в комплекте с двумя файлами jar, скопируйте файл «sqljdbc4.jar» в свой путь data-integration\lib.

  3. Перезапустите Pentaho и повторите попытку подключения MS SQL server(Native).

Примечание. Я использовал этот метод для Pentaho PDI (Kettle), но он должен работать и для остальных продуктов пакета.

Примечание 2: Даже если вы используете Windows, вы можете загрузить файл «.tar.gz» вместо «.exe», потому что вы используете его только для Pentaho.

person Watchmaker    schedule 12.01.2016

Я не знаю, выполнили ли вы эти шаги или нет. но что я хочу упомянуть ::

1> сначала добавьте драйвер jdbc для сервера MS SQL, добавьте в tomcat->lib. sqljdbc4.jar

найдите изображение ниже введите здесь описание изображения

Я надеюсь, что это полезно.

person Amit Kumar    schedule 07.01.2014
comment
Я уже следую тому, что вы показываете. Однако подключиться все равно не удалось. У вас есть другие предложения? - person crystal; 08.01.2014
comment
Мне тоже нужно установить tomcat на сервер? - person crystal; 08.01.2014

Чтобы функция проверки подлинности «Inregratedsecurity» SQL Server работала, необходимо скопировать sqljdbc_auth.dll в папку «~\tomcat\bin» сервера BA и перезапустить сервер BA.

Надеюсь, это поможет!

person armin    schedule 30.08.2014

добавьте "sqljdbc41.jar" в \Pentaho\java\bin и "sqljdbc_auth" (разница для 32-битной и 64-битной версии) в \Pentaho\design-tools\data-integration\lib

person Raj Kamuni    schedule 20.02.2015

Просто боролся с этим на моем Mac.

По умолчанию «корневой» каталог при распаковке архива — data-integration. Я переместил его в каталог под названием «Pentaho» — это небольшая вещь, но не совсем ясная — вам нужен драйвер JDBC в подкаталоге lib вне любого корневого каталога, который вы используете для Pentaho.

Я использовал последнюю версию драйвера JDBC -- sqljdbc42.jar -- отлично работает -- отлично работал с mariadb-java-client-2.1.0.jar для Aurora DB на AWS RDS.

person JFM    schedule 24.08.2017

Добавляю свое решение, потому что ни одно из вышеперечисленных не соответствует точно. Я получил sqljdbc_auth.dll, как было предложено в этой статье, просто поместил его в каталог data-integration\libswt\win64 и запустил Spoon. После этого я смог пройти аутентификацию.

person Daniel Hudsky    schedule 13.08.2019

Выполните шаги Bart VdA, затем перейдите в Pentaho, файл, новый, преобразование. Перейдите на вкладку предварительного просмотра, выберите преобразование, нажмите соединения, новое соединение. Введите настройки сервера sql по умолчанию, как показано на изображении ниже.

введите здесь описание изображения

person Alexandre Neukirchen    schedule 12.06.2021