2013-08-20 3 views
0

Это дает мне головную боль. Я только что создал сообщество сообщества пентахо на моем ноутбуке. Мне удалось подключиться к серверу mysql в xampp, следуя инструкциям в документации по PDF, которая поставляется с корпоративной версией getting_started_with_pentaho. Я отлично соединяюсь с базой данных mysql. Однако мне нужно также подключаться как локально, так и удаленно к серверу sql (mssql), но при этом тот же процесс, что и для базы данных mysql, не работает. Это то, что я сделал: Я установил SQLServer2008R2SP1-KB2528583-x64-ENU.exe SQL сервера и входа в систему успешно со следующим входомpentaho локальное и удаленное подключение к серверу sql

server type: database engine 
server name: ME-PC\SQLEXPRESS 
authentication: windows authentication 
login: ME-PC\ME 
password: 

Теперь я скачал драйвер JDBC для MSSQL из here и извлек папку на рабочий стол. Папка содержала sqljdbc4.jar и sqljdbc.jar, а также версии x64 и x86 от sqljdbc_auth.dll.

Я запускаю операционную систему x64, но только что установленный jdk отправился в Programfiles (x86), поэтому я думаю, что у java, который у меня был, был x86. По этой причине я скопировал sqljdbc4.jar и x86-версии sqljdbc_auth.dll к directorys:

C:\Users\ELRAPHA\Desktop\PENTAHO\biserver-ce\tomcat\webapps\pentaho\WEB-INF\lib

C:\Users\ELRAPHA\Desktop\PENTAHO\administration-console\jdbc

C:\Users\ELRAPHA\Desktop\PENTAHO\data-integration\libext\JDBC

Я также включен TCI/IP на моем локальном сервере SQL.

Как я уже говорил, я в состоянии подключиться к SQL серверу через студию управления, но когда я пытаюсь создать новое соединение через Pentaho в веб-браузере с помощью следующей

hostname: localhost 
database name: master 
instance name: ME-PC\SQLEXPRESS 
port: 1433 
username: ME-PC\ME 
password: 

я получаю ошибку

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

ошибка подключения к базе данных: (с использованием класса com.microsoft.sqlserver.JDBC.SqlServerDriver) Соединение TCP/IP с локальным хостом хоста, порт 1433 не выполнено. Ошибка: соединение отказано: подключитесь.

Я не получаю то, что делаю неправильно, потому что mysql должен был двигаться вперед. Был весь этот день. Мне нужна помощь . Пожалуйста, кто-нибудь может увидеть мою ошибку или что-то, что здесь отсутствует? HELP

ответ

0

Если вы хотите подключиться через JDBC к SQL Server с помощью проверки подлинности Windows, то sqljdbc_auth.dll должен находиться в нужном месте. В моей системе (x86) это относится к каталогу установки драйвера sqljdbc4. К «извлечение папки на рабочий стол» Предполагаю, вы имеете в виду, что вы запустили программу установки, и именно там вы выбираете местоположение драйвера. Например, на моей системе, этот файл не в папках Pentaho, это в:

C:\Program Files\Microsoft JDBC Driver 4.0 for SQL Server\sqljdbc_4.0\enu\auth\x86 

Я бы гарантировать, что 32 и 64-битные версии sqljdbc_auth.dll находятся в соответствующих местах, так как вы, кажется, есть смешанная система.

В качестве альтернативы, вы можете использовать проверку подлинности SQL Server, которая проще, но не обеспечивает интеграцию с AD и т.д.

EDIT:

К сожалению, я забыл что-то очень важное. JVM должен быть проинформирован о местонахождении sqljdbc_auth.dll. Мне пришлось добавить путь к этой dll в% LIBSPATH% в Spoon.bat (я использую только PDI).

Поэтому в основном я изменил этот блок кода в пакетном файле:

:USE32 
REM =========================================== 
REM Using 32bit Java, so include 32bit SWT Jar 
REM =========================================== 
set LIBSPATH=libswt\win32 
GOTO :CONTINUE 
:USE64 
REM =========================================== 
REM Using 64bit java, so include 64bit SWT Jar 
REM =========================================== 
set LIBSPATH=libswt\win64 
set SWTJAR=..\libswt\win64 

к этому:

:USE32 
REM =========================================== 
REM Using 32bit Java, so include 32bit SWT Jar 
REM =========================================== 
set LIBSPATH=libswt\win32;C:\PROGRA~1\MICROS~1.0FO\sqljdbc_4.0\enu\auth\x86 
GOTO :CONTINUE 
:USE64 
REM =========================================== 
REM Using 64bit java, so include 64bit SWT Jar 
REM =========================================== 
set LIBSPATH=libswt\win64 
set SWTJAR=..\libswt\win64 

Примечание сокращенные имена путей. В вашем случае я бы добавил запись для 64-разрядной библиотеки lib, так как у вас смешанная среда.

По сути, независимо от того, какую программу вы используете, используя драйвер sqljdbc, вы должны добавить путь к sqljdbc_auth.dll в путь библиотеки Java (т. Е. -Djava.library.path=%LIBSPATH%). После этого мой экземпляр PDI может без проблем подключиться к SQL Server через проверку подлинности Windows. Я не использую BI_Server или Консоль администратора, но я подозреваю, что у вас будет такая же проблема.

Примечание. У меня нет опыта работы с SQLEXPRESS или смешанной 32-разрядной JVM/64-разрядной операционной системой. Там могут быть проблемы, но если вы хотите использовать проверку подлинности Windows с SQL Server, вам нужно хотя бы разобраться с проблемой пути к библиотеке.

+0

Это не настоящая проблема в вопросе. –

+0

@ Brian.D.Myers На самом деле я подумал, что было бы лучше поместить sqljdbc4.dll в соответствующие каталоги вместо изменения файла bat. Однако я думаю, что проблема заключается в моем локальном сервере, потому что я могу подключиться к удаленному серверу sql. Проблема локальная. Кажется, что ошибка связана с TCP/IP. Но я разрешаю это локально, поэтому я застрял на том, что делать – flexxxit

+0

Я немного смущен тем, с чем вы можете подключиться и с чем. Вы говорите, что на самом деле можете подключиться к удаляющему экземпляру SQL Server с помощью Pentaho? Когда вы сказали студию управления, я подумал, что вы имеете в виду Enterprise Management Studio. Который из них? И откуда работает сервер Pentaho? –

0

Если вы используете в Sql входом в инстанс Экспресс в локальной машине и подключение Pentaho, вы должны пустой поле Номер порта. Попробуйте выполнить следующую конфигурацию:

Host Name: localhost 
Database: database_name 
Instance Name: sqlexpress 
Port Number: 
User Name: user_name 
Password: *****