2013-08-20 4 views
0

이로 인해 두통이 생깁니다. 방금 ​​노트북에 pentaho 커뮤니티 에디션을 설치했습니다. 엔터프라이즈 버전 getting_started_with_pentaho과 함께 제공되는 pdf 설명서의 지침에 따라 xampp의 mysql 서버에 연결할 수있었습니다. 나는 mysql 데이터베이스에 완벽하게 연결한다. 그러나 나는 또한 로컬 및 원격으로 SQL 서버 (mssql)에 연결할 필요가 있지만 mysql 데이터베이스에 대해 수행했던 것과 동일한 프로세스를 사용하면 작동하지 않습니다. 이 내가 무슨 짓을 : 나는 SQLServer2008R2SP1-KB2528583-x64-ENU.exe SQL 서버를 설치하고 SQL Server에 대한 로컬 및 원격 연결이 펜타 호

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

가 지금은 here에서 MSSQL에 대한 JDBC 드라이버를 다운로드 한 다음 입력에 성공적으로 로그인 내 바탕 화면에 폴더를 추출 하였다. 폴더는 sqljdbc4.jarsqljdbc.jar뿐만 아니라 x64 및 x 86 버전 모두 sqljdbc_auth.dll입니다.

x64 OS를 실행하고 있지만 설치 한 jdk가 Programfiles (x86)에 설치되어 있기 때문에 설치했던 java가 x86 용이었습니다. 이러한 이유로 나는 sqljdbc4.jar를 복사하여 directorys에 sqljdbc_auth.dll의 86 버전 :

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

나는 또한 내 로컬 SQL 서버에 TCI/IP를 사용 가능. 내가 언급 한 바와 같이

, 관리 스튜디오를 통해 SQL 서버에 연결할 수 있어요하지만 난 내가 오류가 다음

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 클래스 사용) 로컬 호스트 인 포트 1433에 대한 TCP/IP 연결에 실패했습니다. 오류 : Connection refused : connect.

나는 mysql이 곧장 앞으로 나왔기 때문에 잘못된 것을하고 있지 않습니다. 오늘 하루 종일왔다. 도움이 필요해. 아무도 내 오류 또는 여기에 누락 된 것을 볼 수 있습니까? HELP

답변

0

Windows 인증을 통해 JDBC를 통해 SQL Server에 연결하려면 sqljdbc_auth.dll이 올바른 위치에 있어야합니다. 내 시스템 (x86)에서는 sqljdbc4 드라이버의 설치 ​​디렉토리와 관련이 있습니다. "내 바탕 화면으로 폴더를 추출한" 설치 프로그램을 실행했다는 것을 의미하는 것으로 가정합니다. 드라이버 위치를 선택하는 곳입니다. 내 시스템에 예를 들어,이 파일은에있어, 펜타 폴더에되지 않습니다 :

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

당신이이 것 때문에 내가있는 sqljdbc_auth.dll의 32 개 비트 및 64 비트 버전이 해당 위치에 있는지 확인 것 혼합 시스템.

다른 방법 등 간단하지만 AD와 통합하지 않는 SQL Server 인증을 사용할 수 있습니다

편집

:

아차, 나는 매우 중요한 일을 잊어 버렸습니다. JVM은 sqljdbc_auth.dll의 위치를 ​​인식해야합니다. Spoon.bat의 % LIBSPATH %에 해당 DLL의 경로를 추가해야했습니다 (필자는 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 드라이버를 사용하는 모든 프로그램은 Java 라이브러리 경로 (예 : -Djava.library.path=%LIBSPATH%)에 sqljdbc_auth.dll 경로를 추가해야합니다. 그렇게 한 후, PDI의 나의 인스턴스는 문제없이 Windows 인증을 통해 SQL Server에 연결할 수 있습니다. BI_Server 또는 관리 콘솔을 사용하지 않지만 동일한 문제가 발생할 것으로 생각됩니다.

SQLEXPRESS 또는 혼합 된 32 비트 JVM/64 비트 OS 환경에 대한 경험이 없습니다. 거기에도 문제가있을 수 있지만 SQL Server에서 Windows 인증을 사용하려면 최소한 라이브러리 경로 문제를 처리해야합니다.

+0

이 질문에 실제 문제가 아닙니다. –

+0

@ Brian.D.Myers 실제로 나는 bat 파일을 수정하는 대신 sqljdbc4.dll을 각각의 디렉토리에 넣는 것이 더 좋을 것이라고 생각했습니다. 그러나 원격 SQL 서버에 연결할 수 있기 때문에 문제는 로컬 서버라고 생각합니다. 그 중 하나가 문제입니다. 이 오류는 TCP/IP에 관한 것 같습니다. 하지만 로컬로 할 수 있도록 할 수 있도록 붙어 있습니다. – flexxxit

+0

나는 무엇을 연결할 수 있는지 조금 혼란 스럽습니다. 사실 SQL Server 인스턴스 제거에 Pentaho로 연결할 수 있다고 말하는 것입니까? 당신이 경영 스튜디오라고했을 때, 저는 당신이 엔터프라이즈 매니지먼트 스튜디오를 의미한다고 생각했습니다. 어떤거야? 그리고 Pentaho 서버는 어디에서 실행됩니까? –

0

당신은 로컬 컴퓨터에서의 SQL 익스프레스의 intance를 사용하고, 당신이해야 분야 포트 번호 펜타을 연결하는 경우. 아래 구성을 시도해보십시오.

Host Name: localhost 
Database: database_name 
Instance Name: sqlexpress 
Port Number: 
User Name: user_name 
Password: ***** 
관련 문제