ping <ServerIP> 成功 → 網卡/交換器/路由正常。ping <ServerName> 失敗 → DNS/Hosts 名稱解析問題。telnet <ServerIP> 1433 顯示閃爍游標 → TCP 1433 通。伺服器設定為 「僅 Windows 驗證」,拒絕 SQL Server 驗證帳號 (如 sa)。
HKLM\SOFTWARE\Microsoft\MSSQLServer\MSSQLServer\LoginMode 值改為 2 (混合) → 重啟服務。BUILTIN\Administrators 與 <MachineName>\Administrator 兩個 Windows 登入常被誤刪,需手動加回並授 sysadmin。網路延遲大 (跨網段/VPN/Internet)、伺服器負載高、鎖定阻塞、預設逾時過短 (企業管理員 4 秒、查詢分析器 15 秒)。
Connection Timeout=30 (ADO.NET) / Connect Timeout=30 (ODBC/OLEDB)。Windows 2000+ 為安全預設啟用 TCP/IP 作為預設協定。用戶端嘗試順序由註冊表決定:
Client: HKLM\SOFTWARE\Microsoft\MSSQLServer\Client\SuperSocketNetLib\ProtocolOrder
Server: HKLM\SOFTWARE\Microsoft\MSSQLServer\MSSQLServer\SuperSocketNetLib\ProtocolOrder
值為十六進位字串陣列,74 00 63 00 70 00 = "tcp"。
Network Library=dbmssocn (TCP/IP)、Network Library=dbnmpntw (Named Pipes)。| 錯誤 | 首要檢查 | 關鍵指令/工具 |
|---|---|---|
| 不存在/拒絕 | ping → telnet 1433 → 伺服器/用戶端協定啟用 | ping, telnet, SQL Configuration Manager |
| 登入失敗 | 驗證模式 (混合模式) | 企業管理員/註冊表 LoginMode |
| 逾時 | 網路延遲/伺服器負載/逾時設定 | Connection Timeout, 企業管理員選項 |
| 協定 | TCP/IP 優先,用戶端組態決定 | 連線字串 Network Library, Configuration Manager |
SQL Server 連線問題 90% 集中於:網路通訊、驗證模式、逾時設定、協定優先序。建立標準化排查 SOP (ping → telnet → 協定 → 驗證 → 逾時),可將平均解決時間從小時級壓縮至分鐘級。