使用JDBC连接SQL Server命名实例时出现TCP/IP连接失败错误求助
SQL Server命名实例JDBC连接失败问题排查
1. 连接字符串格式错误
你当前的JDBC URI写法存在两处问题:
- Java字符串里的反斜杠需要转义,直接写
\MSSQLSERVER会被Java解析成MSSQLSERVER,导致实例名识别错误,正确写法是用双反斜杠:jdbc:sqlserver://EC2AMAZ-LKTS\\MSSQLSERVER:1433;encrypt=false; - 命名实例的JDBC连接更规范的写法是通过
instanceName参数指定,而非直接在主机后加反斜杠,比如:jdbc:sqlserver://EC2AMAZ-LKTS;instanceName=MSSQLSERVER;encrypt=false;(这种写法无需指定端口,除非你特意把命名实例固定到1433端口)
2. 命名实例的端口监听配置未生效
虽然你确认了IPVII中配置了1433端口,但要注意是命名实例MSSQLSERVER的TCP/IP协议配置:
- 打开SQL Server配置管理器,找到「SQL Server网络配置」→「MSSQLSERVER的TCP/IP」,查看「IP地址」标签下的「TCP端口」是否确实设为1433,且该协议状态为「启用」。
- 注意:命名实例默认使用动态端口,如果你修改了端口,必须重启SQL Server服务才会生效。
3. 主机名解析问题
在Java所在机器的命令行执行ping EC2AMAZ-LKTS,检查能否正常解析到目标机器的IP地址。如果解析失败,直接用实例所在机器的IP地址替换连接字符串里的主机名再尝试连接。
4. 确认实例服务状态
打开Windows服务管理器,找到「SQL Server (MSSQLSERVER)」服务,确认它处于「运行中」状态,避免因服务未启动导致连接失败。
内容的提问来源于stack exchange,提问作者Jack
相关产品推荐
相关产品推荐

