• 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(如上图)

    最后重启服务

     

    如果打不开服务请

     

     

     

     

     

     

    转载请注明出处,该博客只为交流学习。
  • 相关阅读:
    不断进化中的云原生
    Helium (HNT)
    Linux上抓包工具tcpdump的使用
    docker开始收费之日,就是被抛弃之时,全面拥抱podman
    Mysql数据库的几大优势
    Google Doodle:龙年 新春快乐 龙年进步!
    夏季晨练不得早于6点 生活至上,美容至尚!
    洗脸方法帮你提升面部肤质 生活至上,美容至尚!
    午饭喝酸奶营养健康好身体 生活至上,美容至尚!
    夏天大作战,防晒油绝招 生活至上,美容至尚!
  • 原文地址:https://www.cnblogs.com/kkdaj/p/10585469.html
Copyright © 2020-2023  润新知