遇到「SQL Server 不存在或存取被拒絕」或「連線逾時」錯誤時,請依下列四階段診斷流程由淺入深排查,快速定位根因。
第 1 階段:網路實體連通性
ping <伺服器 IP>
ping <伺服器名稱>
- IP 不通 → 檢查網卡、交換器、路由器、防火牆(含 ISA Server)是否封鎖 ICMP。
- IP 通但名稱不通 → DNS 解析異常,檢查 DNS 服務或編輯
C:\WINNT\system32\drivers\etc\hosts 加入對應:
172.168.10.24 myserver
第 2 階段:TCP 1433 埠可用性
telnet <伺服器 IP> 1433
- 閃爍游標 → 伺服器正常監聽 1433。
- 「無法開啟連線」→ 伺服器端 SQL Server 服務未啟動、未啟用 TCP/IP 協定、或埠號非預設值。
第 3 階段:伺服器端網路設定
執行 SQL Server 伺服器網路公用程式:
- 「一般」頁籤確認已啟用 命名管道 與 TCP/IP。
- TCP/IP 屬性檢查預設埠(預設 1433),若勾選「隱藏伺服器」僅影響列舉,不影響連線。
第 4 階段:用戶端網路設定
執行 SQL Server 用戶端網路公用程式:
- 同樣啟用命名管道與 TCP/IP,且預設連接埠必須與伺服器一致。
- 「別名」頁籤可建立伺服器別名(類似 hosts 功能),指定網路庫為 TCP/IP、伺服器名稱填 IP 或實例名。
常見錯誤與解決方案
錯誤:「無法連接到伺服器,使用者 xxx 登入失敗」
原因:伺服器設為「僅 Windows 驗證」,無法使用 SQL 登入(如 sa)。
- 企業管理器以 Windows 驗證登入 → 伺服器屬性 → 安全性 → 改為「SQL Server 和 Windows」 → 重啟服務。
- 若無法以 Windows 登入,改修改登錄:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSSQLServer\MSSQLServer\LoginMode 值 1→2,重啟服務。
- 補回預設登入
BUILTIN\Administrators 及 <機器名>\Administrator,角色指定 sysadmin。
錯誤:「連線逾時」
常見於跨網段、低速連線或網路擁塞。調整用戶端逾時值:
- 企業管理器:工具 → 選項 → 進階 → 登入逾時(秒)改為 20 以上。
- 查詢分析器:工具 → 選項 → 連線 → 登入逾時改大數值。
快速驗證清單
- Ping IP 通
- telnet IP 1433 成功
- 企業管理器用 IP 建立註冊,選 SQL 登入,輸入 sa/密碼
- 仍失敗 → 伺服器端啟用 WinSock Proxy,Proxy 位址填伺服器 IP、埠 1433
- 仍失敗 → 用戶端建立別名,網路庫 TCP/IP,伺服器名填遠端 IP
依序執行上述步驟,90% 以上連線問題可獲解決。