ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

JDBC:SqlServer连接TCP/IP连接失败,到主机 的 TCP/IP 连接失败。

2019-03-23 20:47:38  阅读:277  来源: 互联网

标签:java 1433 IP SqlServer TCP 解决方案 连接


报错信息: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(如上图)

最后重启服务

 

如果打不开服务请

 

 

 

 

 

 

标签:java,1433,IP,SqlServer,TCP,解决方案,连接
来源: https://www.cnblogs.com/kkdaj/p/10585469.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有