我在本地计算机上运行Microsoft SQL Server 2014 Express,即Windows 7 PC。
我使用Python并且可以使用SQL炼金术连接到服务器(来自同一台PC)而没有任何问题。我也可以使用Excel和PowerPivot插件进行连接。
然而,我无法与Pentaho - Kettle联系。
我得到的错误信息是:
Error connecting to database [mydatabase] :org.pentaho.di.core.exception.KettleDatabaseException: Error occurred 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 localhost, port 1433 has failed. Error: "Connection refused: connect. Verify the connection properties. Make sure that an instance of SQL Server is running on the host and accepting TCP/IP connections at the port. Make sure that TCP connections to the port are not blocked by a firewall.".
org.pentaho.di.core.exception.KettleDatabaseException: Error occurred 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 localhost, port 1433 has failed. Error: "Connection refused: connect. Verify the connection properties. Make sure that an instance of SQL Server is running on the host and accepting TCP/IP connections at the port. Make sure that TCP connections to the port are not blocked by a firewall.".
我尝试了各种组合,指定端口号1433并将其留空,使用集成安全性和手动输入密码,将主机名设置为localhost和DESKTOP-MYNAME \ SQLEXPRESS,但无效。< / p>
思考?建议?谢谢!
我已经阅读了很多关于它的讨论,但似乎没有相关内容; SQL服务器接受传入连接,例如来自Python和SQL Alchemy。
答案 0 :(得分:2)
我运行了SQL Server 2014配置管理器,并检查了:
SQL Server网络配置 - &gt; SQLEXPRESS的协议 - &gt; TCP / IP
在协议选项卡中,我有:启用:是,全部收听:是
在“IP地址”标签中,在底部的IPAll下,“TCP动态端口”设置为49178 。 (不知道为什么)。
所以我将Pentaho的'table input'设置中的端口设置为49178 。它设法找到服务器,但是有关集成安全性的错误。所以我将sqljdbc_auth.dll复制到C:\ Program Files(x86)\ Java \ jre1.8.0_144的bin和lib子文件夹....现在它可以工作了!
如果我没有指定端口,Pentaho会尝试端口1433,但它不起作用。
作为参考,我使用Python和SQL Alchemy的连接字符串没有明确指定端口。
params = '?driver=SQL+Server+Native+Client+11.0'
engine = create_engine('mssql+pyodbc://' + ServerName + '/'+ Database + params, encoding ='latin1' )
conn=engine.connect()
答案 1 :(得分:0)
SQL Server网络配置-> SQLEXPRESS的协议-> TCP / IP
在“协议”标签中,我具有:已启用:是和全部收听:是
在“ IP地址”标签的底部IPAll下,“ TCP动态端口”设置为49178。
因此,我将Pentaho的“表输入”设置中的端口设置为49717。
这对我也有用。