2013-08-20 4 views
0

Cela me donne mal à la tête. Je viens de mettre en place l'édition de la communauté Pentaho sur mon ordinateur portable. J'ai été en mesure de se connecter au serveur mysql dans xampp en suivant les instructions dans la documentation pdf qui vient avec l'édition d'entreprise getting_started_with_pentaho. Je me connecte parfaitement à la base de données mysql. Cependant, je dois également me connecter localement et à distance à un serveur sql (mssql), mais suivre le même processus que pour la base de données mysql ne fonctionne pas. C'est ce que je l'ai fait: J'ai installé SQLServer2008R2SP1-KB2528583-x64-ENU.exe serveur sql et connecté avec succès avec l'entrée suivantePentaho connexion locale et à distance au serveur SQL

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

Maintenant, je téléchargé le pilote jdbc pour MSSQL de here et décompressé le dossier sur mon bureau. Le dossier contenait sqljdbc4.jar et sqljdbc.jar ainsi que les versions x64 et x86 de sqljdbc_auth.dll.

Je suis en cours d'exécution d'un OS x64 mais, mais je l'ai installé le JDK est allé à la Programfiles (x86) donc je suppose que le java je devais installer était pour x86. Pour cette raison, je copiais sqljdbc4.jar et la version x86 de sqljdbc_auth.dll aux repertoires:

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

I a également permis à TCI/IP sur mon serveur SQL local.

Comme je l'ai mentionné, je suis en mesure de se connecter au serveur SQL via le studio de gestion, mais lorsque je tente de créer une nouvelle connexion par Pentaho dans le navigateur Web avec les éléments suivants

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

Je reçois l'erreur

erreur de connexion à la base de données [mssqllocal] org.pentaho.di.core.exception.KettleDatabaseException: Une erreur est survenue en essayant de se connecter à la base de données

erreur de connexion à la base de données: (en utilisant la classe com.microsoft.sqlserver.JDBC.SqlServerDriver) La connexion TCP/IP à l'hôte localhost, le port 1433 a échoué. Erreur: Connexion refusée: se connecter.

Je n'obtenir ce que je fais tort d'autant plus que MySQL était simple. Été à ceci toute la journée. J'ai besoin d'aide . S'il vous plaît quelqu'un peut-il voir mon erreur ou quelque chose qui manque ici? AIDE

Répondre

0

Si vous voulez vous connecter via JDBC à SQL Server via l'authentification Windows, le sqljdbc_auth.dll doit être au bon endroit. Sur mon système (x86) cela est relatif au répertoire d'installation du pilote sqljdbc4. Par "extrait le dossier sur mon bureau" Je suppose que vous voulez dire que vous avez exécuté le programme d'installation, et c'est là que vous choisissez l'emplacement du pilote. Par exemple sur mon système, ce fichier est pas dans les dossiers Pentaho, il est dans:

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

Je veillerais que les deux versions 32 et 64 bits de sqljdbc_auth.dll sont dans leurs emplacements respectifs puisque vous semblez avoir un système mixte.

Vous pouvez également utiliser l'authentification SQL Server qui est plus simple, mais ne s'intègre pas à AD, etc.

EDIT:

Oops, j'ai oublié quelque chose d'important. La machine virtuelle Java doit être informée de l'emplacement de sqljdbc_auth.dll. J'ai dû ajouter le chemin de cette DLL à% LIBSPATH% dans Spoon.bat (j'utilise seulement PDI).

Donc, essentiellement, j'ai changé ce bloc de code dans le fichier batch:

: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 

à ceci:

: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 

Notez les noms de chemin raccourcies. Dans votre cas, je voudrais ajouter une entrée pour la bibliothèque 64 bits, car vous avez un environnement mixte.

Quel que soit le programme que vous démarrez et qui utilise le pilote sqljdbc, vous devez ajouter le chemin sqljdbc_auth.dll au chemin de la bibliothèque Java (c'est-à-dire -Djava.library.path=%LIBSPATH%). Après cela, mon instance de PDI peut se connecter à SQL Server via l'authentification Windows sans problème. Je n'utilise pas BI_Server ou la console d'administration, mais je suppose que vous aurez le même problème. Remarque: Je n'ai aucune expérience avec SQLEXPRESS, ou un environnement de système d'exploitation JVM/64 bits mixte 32 bits. Il peut également y avoir des problèmes, mais si vous souhaitez utiliser l'authentification Windows avec SQL Server, vous devez au moins gérer le problème du chemin de la bibliothèque.

+0

Ce n'est pas le vrai problème dans la question. –

+0

@ Brian.D.Myers En fait, j'ai pensé qu'il serait préférable de mettre sqljdbc4.dll dans les répertoires respectifs au lieu de modifier le fichier bat. Cependant, je pense que le problème est mon serveur local, car je suis capable de me connecter à un serveur SQL distant. Le local est le problème. L'erreur semble être sur TCP/IP. Mais je l'ai activé localement donc je suis coincé sur ce qu'il faut faire – flexxxit

+0

Je suis un peu confus au sujet de ce que vous pouvez vous connecter et avec quoi. Vous dites que vous pouvez en fait vous connecter à l'instance SQL Server avec Pentaho? Quand vous avez dit studio de gestion, je pensais que vous vouliez dire Enterprise Management Studio. Laquelle est-ce? Et d'où vient le serveur Pentaho? –

0

Si vous utilisez un intance de Sql Express machine locale et la connexion Pentaho, vous devez vide le champ Numéro de port. Essayez la configuration ci-dessous:

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