錯誤訊息
提供者:命名管道提供者,錯誤:40 - 無法開啟到 SQL Server 的連線 (Microsoft SQL Server, 錯誤: 2)
原因分析
SQL Server 服務未啟動、網路協定未啟用、防火牆封鎖、或用戶端協定順序錯誤。
解決步驟(透過 SQL Server 組態管理員)
1. 確認服務狀態
- 開啟「SQL Server 組態管理員」
- 左側選擇「SQL Server 服務」
- 確認 SQL Server (MSSQLSERVER) 狀態為「執行中」
- 若未執行,右鍵選擇「啟動」
2. 啟用 TCP/IP 協定
- 左側展開「SQL Server 網路組態」→ 選擇執行個體(如 MSSQLSERVER)
- 右側找到 TCP/IP,右鍵選擇「啟用」
- 右鍵 TCP/IP 選「屬性」→ 「IP 位址」頁籤,確認 IPAll 的 TCP 連接埠為 1433
3. 調整用戶端協定順序
- 左側選擇「SQL Native Client 組態」→ 「用戶端協定」
- 確保 TCP/IP 排在 命名管道 之前(順序 1)
- 共用記憶體通常保持順序 0(本機連線最快)
4. 重啟 SQL Server 服務
變更協定設定後,必須重啟 SQL Server 服務才能生效。
補充檢查清單
- Windows 防火牆:輸入規則允許 TCP 1433、sqlservr.exe、sqlbrowser.exe (UDP 1434)
- SQL Server Browser 服務啟動(具名實例必要)
- 連線字串:`Server=IP,1433;Database=DB;User ID=sa;Password=xxx;` 指定連接埠
- 錯誤日誌:`C:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\Log\ERRORLOG`
總結
錯誤 40 多半由「服務未啟動」或「TCP/IP 未啟用/順序錯誤」引起。依序檢查服務狀態 → 伺服器網路協定 → 用戶端協定順序 → 防火牆 → 重啟服務,即可解決絕大多數連線問題。