🧾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)

留言

這個網誌中的熱門文章

🔍Vue.js 專案錯誤排查:解決 numericFields is not defined 與合併儲存格邏輯最佳化

🖥️遠端桌面連線完整新手指南:Windows RDP、Chrome Remote Desktop、AnyDesk、TeamViewer 一次搞懂

如何在 Word 插入漂亮的程式碼區塊—使用Editor.md