我可以在 Windows 机器上通过以下 JDBC 连接连接到我的 SQL Server 实例:
jdbc:sqlserver://<my_server>;databaseName=<my_db>;integratedSecurity=true;authenticationScheme=JavaKerberos;username=<my_user>;password=<my_pwd>
但是,当在 Linux 机器上调用相同的连接字符串时,我得到以下错误堆栈:
com.microsoft.sqlserver.jdbc.SQLServerException: The TCP/IP connection to the host <my_server>, port 1433 has failed. Error: "Connection timed out: no further information.. 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.".
我已经尝试更改 JDBC 字符串以删除 integratedSecurity=true
,根据这个 forum ,但我遇到了相同的错误消息。
错误消息与身份验证或网络相关吗?我能够通过 SSH 进入 Linux 机器并成功 ping <my_server>
如果我可以从您的 Linux 客户端的标准端口访问“my_server”,我会首先尝试,例如
telnet my_server 1433
因为 MS Sql Server 正在监听端口 1433,而 MySQL 正在监听 3306。如果这没问题,请使用上面提到的 duffymo 的基本 URL。大概添加用户名和密码:
jdbc:sqlserver://myserver:1433;databaseName=my_db;user=my_user;password=my_password
我是一名优秀的程序员,十分优秀!