JDBC:SqlServer连接TCP/IP连接失败,到主机 的 TCP/IP 连接失败。报错信息:com.microsoft.sqlserver.jdbc.SQLServerException: 到主机 的 TCP/IP 连接失败。
作者QQ:1161493927,欢迎互相交流学习。
报错信息:com.microsoft.sqlserver.jdbc.SQLServerException: 到主机 的 TCP/IP 连接失败。 java.net.ConnectException: Connection refused: connect
Exception in thread "main" java.lang.NullPointerException
at test.main(test.java:17)
很多情况下,不能用一种思路理解或解决问题,比如这个到主机 的 TCP/IP 连接失败的问题
首先分析这个问题产生的原因,大概有5种原因(因为我也遇到了这个问题,所以大概搜集了些解决方案)
常见的问题,第一个,第二个,第五个,这三种是最常见的问题
1)JAVA连接时端口或者看看是否和你java代码中指定的url中的接口不一致
解决方案:使用JAVA链接SQLServer数据库,检查语句是否正确尤其为端口号。
2)SqlServer服务未打开或服务未配置正确
解决方案:
2.1)SqlServer服务未打开
打开SQL Server的配置管理器——>点击SqlServer服务——>选中SqlServer(MSSQLSERVER)右击启动【状态代表目前状态】【启动模式代表是开机自启动还是需要手动启动】
如下图
2.2)SqlServer服务未配置正确
解决方案:
exec sys.sp_readerrorlog 0, 1, 'listening'
运行后 会显示你的sql 正在运行的tcp/ip接口
看看是否和你java代码中指定的url中的接口不一致
3)端口占用
解决方案:
3.1)输入:netstat -aon|findstr "端口号"
如输入netstat -aon|findstr "1433",回车,有以下信息显示TCP 0.0.0.0:1433 0.0.0.0:0 LISTENING 1956
其中"1956"为占用"1433"端口的进程号
3.2)输入:tasklist|findstr "进程号"
如输入tasklist|findstr "1956",回车,有以下信息显示
sqlservr.exe 1956 Console 0 5,556 K
其中"sqlservr.exe"即占用"1433"端口的进程名
4)防火墙拦截
解决方案:关闭防火墙尝试,如果问题解决在防火墙中添加入站规则
5)TCP/IP服务未打开
解决方案:打开TCP/IP协议(注意事项,请设置完毕后重启服务)
默认是禁用的如上图。(右击该服务启动)
选中该服务后双击,选择IP地址。翻到最下面IPALL,TCP动态端口默认是随机配置的设置为1433(如上图)
最后重启服务
如果打不开服务请
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了