首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> SQL Server 資料庫 >> 關於SqlServer

SQL Server 連線失敗三大常見錯誤原因與排查步驟

     編輯:關於SqlServer

「SQL Server 不存在或存取被拒」、「使用者登入失敗」、「逾時」是連線問題的三大經典錯誤。本文提供系統性的分層排查流程,從網路層到應用層逐層隔離問題根因。

錯誤一:「SQL Server 不存在或存取被拒」

可能原因

  1. 伺服器名稱/IP 拼寫錯誤
  2. 伺服器端網路設定錯誤 (未啟用 TCP/IP、埠號非 1433、防火牆封鎖)
  3. 用戶端網路設定錯誤 (協定順序、別名設定)
  4. 名稱解析失敗 (DNS/HOSTS 檔)

標準排查流程 (依序執行)

  1. 實體連通性:ping <Server_IP> 成功 → 網路通;失敗 → 檢查網卡、交換器、防火牆 (含 ISA Server 等軟體防火牆)。
  2. 名稱解析:ping <Server_Name> 失敗但 IP 成功 → DNS 問題。解決:修正 DNS、或在用戶端 C:\Windows\System32\drivers\etc\hosts 加入 172.168.10.24 myserver。
  3. 埠連通性:telnet <Server_IP> 1433 (或自訂埠)。閃爍游標 = 成功;「無法開啟連線」 = 伺服端未啟動服務、未啟用 TCP/IP、埠號不符、防火牆封鎖。
  4. 伺服端網路設定:執行「SQL Server 伺服器網路公用程式」→「一般」分頁確認已啟用「命名管道」與「TCP/IP」。點選 TCP/IP「屬性」確認埠號 (預設 1433) 與「隱藏伺服器」選項。
  5. 用戶端網路設定:執行「SQL Server 用戶端網路公用程式」→ 啟用同樣協定、確認預設連接埠一致。於「別名」分頁可建立連線別名 (類似 hosts 檔功能)。

錯誤二:「無法連接到伺服器,使用者 'xxx' 登入失敗」

根本原因

SQL Server 設定為 「僅 Windows 驗證模式」,導致 SQL Server 驗證帳號 (如 sa) 無法登入。

解決方法

  1. 以 Windows 驗證身分登入企業管理器 (需具 sysadmin 權限)。
  2. 右鍵伺服器名稱 → 「屬性」 → 「安全性」分頁。
  3. 於「驗證」區域選擇 「SQL Server 和 Windows」 (混合模式)。
  4. 確認 sa 帳號已啟用且密碼正確 (右鍵「安全性」→「登入」→ sa → 屬性)。
  5. 重啟 SQL Server 服務 使設定生效。

錯誤三:連線逾時 / 效能問題

  • 檢查連線字串 Connection Timeout 設定 (預設 15 秒)。
  • 啟用連線共用:Pooling=true; Min Pool Size=5; Max Pool Size=100。
  • 使用 sp_who2、sys.dm_exec_connections 檢查阻塞與連線數上限。
  • 驗證 TCP Chimney Offload、RSS 等網卡卸載功能是否導致封包遺失 (必要時關閉)。

診斷利器

工具用途
SQL Server Configuration Manager現代版網路設定 (取代舊版公用程式)
PortQry / Test-NetConnection (PS)進階埠掃描與連線測試
SQL Server Profiler / Extended Events追蹤登入失敗事件 (ErrorLog 自動記錄)
ODBC 測試 / UDL 檔案快速驗證驅動程式與連線字串

遵循「實體→IP→埠→服務→驗證→應用」的分層排查原則,90% 連線問題可在 10 分鐘內定位解決。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved