🧾SQL Server 無法連線怎麼辦?完整排查教學(錯誤 1326 / error 40 一次解決)
🚨 問題描述:為什麼 SQL Server 連不上?
你在連接資料庫時,看到類似這樣的錯誤:
❌ 無法連線至伺服器❌ error: 40 - Could not open a connection
❌ 錯誤: 1326(登入失敗)
這種問題對新手來說很常見,但其實原因通常不複雜。
👉 白話解釋就是:
「你的電腦找不到資料庫,或找到了但進不去」
🧩 常見原因(用生活比喻講解)
我們把「連資料庫」想像成「去朋友家拜訪」:
| 問題 | 比喻 | 說明 |
|---|---|---|
| IP 錯誤 | 地址寫錯 | 找不到伺服器 |
| Port 關閉 | 大門鎖住 | 無法連線 |
| 帳密錯誤 | 密碼輸錯 | 無法登入 |
| 沒開遠端 | 不讓外人進 | 外部連不上 |
| 通訊方式錯誤 | 走錯入口 | Named Pipes vs TCP |
🛠️ 解決方法(一步一步排查)
✅ Step 1:確認伺服器存在(最基本)
請先確認「你要連的主機真的存在」。
👉 測試方式(改成通用範例):
ping 192.168.1.100
✔ 有回應 → OK
❌ 沒回應 → IP 錯 / 網路不通
✅ Step 2:確認資料庫服務有開
在伺服器上確認:
- SQL Server 是否啟動
-
服務名稱例如:
-
MSSQLSERVER - 或自訂 instance
-
👉 可以用「服務管理工具」查看
✅ Step 3:確認允許遠端連線
很多人卡在這裡!
設定位置:
- SQL Server 設定 → Connections
-
勾選:
✔ Allow remote connections
✅ Step 4:開啟正確的連線協定(超重要)
SQL Server 有多種連線方式:
- Named Pipes(常出錯)
- TCP/IP(建議使用)
👉 正確作法:
在設定工具中:
- 啟用 TCP/IP
- 停用 Named Pipes(可選)
✅ Step 5:確認 Port 有開(預設 1433)
👉 測試方式(換一種寫法):
nc -zv 192.168.1.100 1433
✔ 成功 → Port OK
❌ 失敗 → 防火牆擋住
✅ Step 6:防火牆設定
請確認:
- Windows Firewall
- 公司防火牆
- 雲端安全群組
都有開放:
TCP 1433
✅ Step 7:帳號密碼問題(錯誤 1326 主因)
錯誤 1326 幾乎都跟「登入失敗」有關:
請確認:
- 使用 SQL Server Authentication(不是 Windows)
- 帳號存在
- 密碼正確
- 沒被鎖帳
✅ Step 8:強制使用 TCP 連線(解決 error 40)
👉 正確寫法(範例):
tcp:192.168.1.100,1433
這樣可以避免系統誤用 Named Pipes。
🔥 最常見的錯誤組合(實務經驗)
如果你看到:
- error 40
- error 1326
- Named Pipes Provider
👉 幾乎 80% 是:
✔ TCP/IP 沒開
✔ 或 Port 被擋
✔ 或帳密錯
🧪 一鍵排查清單(工程師快速用)
你可以照這個順序:
1️⃣ 能 ping 通嗎?
2️⃣ SQL Server 有啟動嗎?
3️⃣ TCP/IP 有開嗎?
4️⃣ Port 1433 有通嗎?
5️⃣ 帳密正確嗎?
6️⃣ 是否用 tcp: 連線?
🎯 總結(給新手的重點)
如果你完全不懂,記住這句就好:
👉 SQL Server 連不上 = 網路 + 設定 + 帳密 三件事
只要逐一檢查,一定能找到原因。
💡 延伸建議
如果你是開發者,建議:
-
使用
.env管理 DB 連線 - 避免寫死 IP
- 加上 retry 機制
- 使用連線測試工具(如 DBeaver)
留言
張貼留言