SQL Server与Java建立连接报错:已启用TCP/IP仍提示主机连接失败
SQL Server JDBC 连接失败解决方案
- 端口监听校验
打开命令提示符执行netstat -ano | findstr 1433,确认SQL Server默认1433端口处于监听状态。如果无返回结果,进入SQL Server配置管理器→对应实例的TCP/IP属性→IP地址选项卡,拉至底部将IPAll的TCP端口设置为1433,保存后重启SQL Server服务。 - 主机名解析校验
本地执行ping csci331-server,确认可正常解析到SQL Server所在服务器的IP,解析失败时直接将连接串中的主机名替换为实际IP即可。 - 防火墙拦截校验
确认SQL Server所在服务器防火墙已开放1433端口入站规则,也可临时关闭两端防火墙测试连接,排除拦截问题。 - 连接串参数修正
高版本SQL Server JDBC驱动默认要求加密连接,且数据库标识参数为DatabaseName,同时建议显式指定端口,修正后的代码示例如下:
import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; public class Driver { public static void main(String[] args) { // 修正后的连接串:显式加端口、用DatabaseName参数、关闭加密验证 String connectionString = "jdbc:sqlserver://csci331-server:1433;DatabaseName=TSQLV4;IntegratedSecurity=true;encrypt=false"; try { try(Connection connection = DriverManager.getConnection(connectionString)){ System.out.println("Connection Established"); } }catch(SQLException e) { System.out.println("Error connection to the database"); e.printStackTrace(); } } }
- 集成身份验证依赖校验
使用IntegratedSecurity=true时,需要将对应版本的sqljdbc_auth.dll文件放入JDK的bin目录,或在Eclipse运行配置的VM参数中添加-Djava.library.path=<dll文件所在文件夹路径>,否则会因缺少依赖导致连接失败。
内容的提问来源于stack exchange,提问作者Mahima Thakur
相关产品推荐
相关产品推荐

