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

最后重啟服務

 

如果打不開服務請

 

 

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM