首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> SQL Server 資料庫 >> 關於SqlServer

解決 SQL Server 2005 TCP/IP 連線失敗:啟用 TCP/IP 協定與防火牆設定

     編輯:關於SqlServer

錯誤現象

Java (JDBC) / .NET / 應用程式連線 SQL Server 2005 拋出:

com.microsoft.sqlserver.jdbc.SQLServerException: 到主機的 TCP/IP 連接失敗。 java.net.ConnectException: Connection refused: connect

本機 Management Studio 卻可正常連線 (使用共享記憶體/命名管道)。

根本原因

SQL Server 2005 **預設停用 TCP/IP 協定**,僅啟用 Shared Memory (本機) 與 Named Pipes。遠端連線必須明確啟用 TCP/IP。

啟用步驟 (圖文並茂)

  1. 開啟 SQL Server Configuration Manager:
    開始 → 所有程式 → Microsoft SQL Server 2005 → 組態工具 → SQL Server Configuration Manager
  2. 左側展開 SQL Server 2005 網路組態 → 選取 MSSQLSERVER 的通訊協定 (或具名執行個體名稱)。
  3. 右側列表找到 TCP/IP,狀態為「已停用」。
  4. 右鍵 → 啟用。
  5. (選擇) 右鍵 → 屬性 → 「IP 位址」頁籤 → 確認 IPAll 的 TCP 連接埠 設為 1433 (預設)。
  6. 左側切換至 SQL Server 2005 服務,右鍵 SQL Server (MSSQLSERVER) → 重新啟動。

防火牆設定 (Windows Server 2003/2008/Vista)

netsh advfirewall firewall add rule name="SQL Server TCP 1433" dir=in action=allow protocol=TCP localport=1433
netsh advfirewall firewall add rule name="SQL Server Browser UDP 1434" dir=in action=allow protocol=UDP localport=1434

或圖形介面:控制台 → Windows 防火牆 → 例外 → 新增連接埠 1433 (TCP) / 1434 (UDP)。

驗證連線

-- 本機命令列測試
telnet localhost 1433
-- 遠端測試
telnet  1433

成功顯示空白閃爍游標即表示連接埠通暢。

Java JDBC 連線測試碼


import java.sql.*;

public class TestSqlConn {
    public static void main(String[] args) {
        String driver = "com.microsoft.sqlserver.jdbc.SQLServerDriver";
        String url = "jdbc:sqlserver://localhost:1433;databaseName=DataManagement";
        String user = "sa"; String pwd = "sa";
        try {
            Class.forName(driver);
            Connection conn = DriverManager.getConnection(url, user, pwd);
            System.out.println("Connection Successful!");
            conn.close();
        } catch (Exception e) { e.printStackTrace(); }
    }
}

常見誤區

  • ❌ 以為安裝完成即可遠端連線 → 必須手動啟用 TCP/IP。
  • ❌ 僅開放 1433 未開放 1434 → 瀏覽服務 (SQL Browser) 需 UDP 1434 解析具名執行個體。
  • ❌ 使用舊版 JDBC 驅動 (com.microsoft.jdbc.sqlserver.SQLServerDriver) → 必須用 com.microsoft.sqlserver.jdbc.SQLServerDriver (sqljdbc.jar)。

結語

SQL Server 2005 預設安全強化停用 TCP/IP,是遠端連線失敗的首因。依序啟用協定、重啟服務、開放防火牆 1433/1434,即可恢復正常遠端存取。建議將此納入伺服器標準化部署清單 (Checklist)。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved