pentaho本地和远程连接到sql server

insrf1ej  于 2023-02-11  发布在  SQL Server
关注(0)|答案(3)|浏览(173)

这让我很头疼。我刚刚在笔记本电脑上安装了pentaho community edition。我能够按照企业版getting_started_with_pentaho附带的pdf文档中的说明连接到xampp中的mysql服务器。我完美地连接到mysql数据库。但是我还需要在本地和远程连接到sql服务器(mssql)但是按照我对mysql数据库所做的相同过程不起作用。这是我所做的:我安装了SQLServer2008R2SP1-KB2528583-x64-ENU.exe 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和x86版本的sqljdbc_auth.dll
我运行的是x64操作系统,但是我安装的jdk转到了Programfiles(x86),所以我猜我安装的java是针对x86的。由于这个原因,我将sqljdbc4.jar和x86版本的sqljdbc_auth.dll复制到了目录:
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 server上启用了TCI/IP。
正如我提到的,我能够通过management studio连接到sql server,但是当我尝试在web浏览器中使用以下代码通过pentaho创建一个新连接时

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

我得到了错误
连接到数据库[mssqllocal]时出错。发生异常。尝试连接到数据库时出错
连接到数据库时出错:(使用类com. microsoft. sqlserver. JDBC. SqlServerDriver)到主机localhost端口1433的TCP/IP连接失败。错误:连接被拒绝:连接。
我不知道我做错了什么,特别是因为mysql是直接向前。一直在这一整天。我需要帮助。请任何人都可以看到我的错误或一些东西是失踪在这里?帮助

zzwlnbp8

zzwlnbp81#

如果您希望通过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

我会确保sqljdbc_auth.dll的32位和64位版本都在各自的位置,因为您似乎有一个混合系统。
或者,您可以使用SQL Server身份验证,后者更简单,但不与AD等集成。
编辑:
哎呀,我忘了一件非常重要的事情。JVM必须知道sqljdbc_auth.dll的位置。我不得不将该dll的路径添加到Spoon.bat中的%LIBSPATH %(我只使用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位库添加一个条目,因为您有一个混合的环境。
实际上,无论您启动的是哪个使用sqljdbc驱动程序的程序,都必须将sqljdbc_auth.dll路径添加到Java库路径(即-Djava.library.path=%LIBSPATH%)。完成此操作后,我的PDI示例可以通过Windows身份验证连接到SQL Server,没有任何问题。我不使用BI_Server或管理控制台,但我怀疑您也会遇到同样的问题。
注意,我没有使用SQLEXPRESS或混合32位JVM/64位OS环境的经验。那里也可能有问题,但如果您想对SQL Server使用Windows身份验证,您至少必须处理库路径问题。

nwo49xxi

nwo49xxi2#

如果您正在本地计算机中使用Sql Express的示例并连接Pentaho,则必须清空字段端口号。请尝试以下配置:

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

y53ybaqx3#

如果出现问题,请将端口号清空,并将示例名称手动设置为手动参数:

instanceName=SQLEXPRESS

默认的pentaho对话框(至少到8.3)仅生成代码“instance=SQLEXPRESS”

相关问题