到主机的tcp ip连接失败mysql_JDBC:SqlServer连接TCP/IP连接失败,到主机 的 TCP/IP 连接失败。报错信息:com.microsoft.sqlserver.jdbc.S...

作者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)右击启动【状态代表目前状态】【启动模式代表是开机自启动还是需要手动启动】

如下图

9bfb5ec19d4f965c6553578ce09dfb63.png

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协议(注意事项,请设置完毕后重启服务)

80e82413230678492fde08a89cab9735.png

默认是禁用的如上图。(右击该服务启动)

f72fb7eaebae7c839179d79ea68b627d.png

选中该服务后双击,选择IP地址。翻到最下面IPALL,TCP动态端口默认是随机配置的设置为1433(如上图)

f0e5fce4d6ebdacb5015f6f559975a51.png

最后重启服务

如果打不开服务请

2d9e73cd73c756fd64e1ebb214f8ee9d.png

02c64c4e66a15b0561d37df448b773c8.png

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值