安裝FineReport連接SQL Server數據庫時,通過端口1433連接到本機一直失敗,在FineReport官方網站幫助文檔一直沒找到解決辦法。后在網上搜索了許久,終於找到問題所在“需要啟用SQL Server網絡配置中SQL Server的協議TCP/IP協議”,現將解決辦法總結如下。[FineReport是用Java開發的,該問題的實質是“Java通過JDBC連接SQLServer”]
問題描述:com.microsoft.sqlserver.jdbc.SQLServerException: 通過端口 1433 連接到主機 localhost 的 TCP/IP 連接失敗。錯誤:“Connection refused: connect。請驗證連接屬性,並檢查 SQL Server 的實例正在主機上運行,且在此端口接受 TCP/IP 連接,還要確保防火牆沒有阻止到此端口的 TCP 連接。”。
at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDriverError(SQLServerException.java:171)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:1033)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:817)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:700)
at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:842)
at java.sql.DriverManager.getConnection(DriverManager.java:582)
at java.sql.DriverManager.getConnection(DriverManager.java:185)
at com.luoying.TestSQLServer2.main(TestSQLServer2.java:15)
解決方法 :
打開 “microsoft sqlserver ”的 SQL Server Configuration Manager(配置管理器),
查看SQL Server網絡配置, 下面有個 MSSQLSERVER 的協議, 把右邊 的那個 TCP/IP 啟用(默認禁用的)。
查看緊挨着的SQL Native Client 配置,客戶端協議, 把右邊 的那個 TCP/IP 啟用。
確保端口是 1433 , 並已經打開了。
最后把 SQL Server(MSSQLSERVER) 服務重啟!
--------------------------------------------
附:
win10找到sql server 配置管理器並打開的方法(windows7中可以在開始菜單然后microsoft SQL Server文件下找到。但windows10下發現找不到了,搜索后發現windows10隱藏起了。):
安裝 sql server之后無法在開始菜單找到“sql server 配置管理器(SQL server configuration manager)。因為 SQL Server 配置管理器是 Microsoft 管理控制台程序的一個管理單元而不是單獨的程序,所以,當運行 Windows 10 時,SQL Server 配置管理器不顯示為一個應用程序。
1) 桌面右擊“此電腦”,選擇“管理”,之后展開“服務和應用程序 ”即可看到 SQL Server配置管理器。
2)或在 資源管理器 中,找到目錄:C:\Windows\system32(或者SysWOW64),並且找到該目錄下的 SQLServerManager14.msc(sql server 2017對應的,其他版本sql server對應修改) 文件,雙擊該文件即可打開“資源管理器”。

3)或者直接運行cmd,輸入"SQLServerManager10.msc", 可直接打開“資源管理器”


------------------------------------
另轉:
Java通過JDBC連接SQLServer 2012,出現一些連接問題,從網上查找了很多解決方法,卻仍然無法解決。在這里將我遇到的問題及解決方法總結如下,希望可以幫到大家。
1、通過端口 1433 連接到主機 localhost 的 TCP/IP 連接失敗。錯誤:“Connection refused: connect。請驗證連接屬性,並檢查 SQL Server 的實例正在主機上運行,且在此端口接受 TCP/IP 連接,還要確保防火牆沒有阻止到此端口的 TCP 連接。
2、通過端口 1433 連接到主機 localhost 的 TCP/IP 連接失敗。錯誤:“connect timed out。請驗證連接屬性,並檢查 SQL Server 的實例正在主機上運行,且在此端口接受 TCP/IP 連接,還要確保防火牆沒有阻止到此端口的 TCP 連接。
注:第一種錯誤:Connection refused: connect,經過驗證是TCP/IP端口設置問題,可以集中在解決方案的步驟(1)(2)(3)(5).
第二種錯誤:connect timed out,經過解決方案的(1)(2)(3)驗證端口正確后仍會還會出現該錯誤,故特加上步驟(4),修改防火牆設置,完美解決問題。
解決方案:
(1)打開SQLServer 配置管理器------->SQLServer for MSQLSERVER------->TCP/IP------->如果沒有啟動,則啟動------->右鍵屬性------->IPAddresses------->IP All------->將TCP端口改為1433;
(2)打開SQLServer 配置管理器------->SQL Native Client 10.0 Configuration------->CP/IP------->如果沒有啟動,則啟動------->右鍵屬性------->將Default Port(默認端口)改為1433;
(3)重啟服務器。
(4)如果數據庫連接仍然失敗,檢查防火牆。控制面板------->系統和安全------->Windows Defender防火牆------->允許應啟用或關閉Windows Defendddeer防火牆------->將Windows防火牆關閉。
(5)連接問題完美解決
————————————————
總結:
java編程中遇到問題:到主機的TCP/IP連接失敗。java.net.ConnectException:Connectionrefused:connect
在所有的環境都是新配置的情況下,連數據庫的時候報錯,第一反應是數據庫服務沒有開沒開。然后防火牆,最后把IPALL設置成1433。
SQL SERVER出現無法連接(或無法通過IP進行連接),多數是一下幾種原因:
1.服務沒有開放
2.防火牆屏蔽了端口(通常是1433端口)
3.沒有允許遠程訪問。在外配應用配置器中設置“允許遠程訪問”
4.TCP/IP協議中,基於TCP/IP遠程連接的IP選項設置不正確(通常是填錯IP,或者填對但沒有啟用)
5.選擇了”全部偵聽“,但沒有設置到"IPALL"的TCP端口號。
