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

SQL Server 連線失敗完整排查手冊:「不存在或存取被拒」根因分層診斷

     編輯:關於SqlServer

「SQL Server 不存在或存取被拒絕」是 DBA 與開發者遇到最頻繁的連線錯誤。本文建立四層診斷模型(網路、服務、伺服器端網路配置、用戶端網路配置),提供標準化排查流程與關鍵指令,助力快速定位根因。

四層診斷模型

  1. 網路連通性: 物理鏈路、IP 可達、名稱解析。
  2. SQL Server 服務狀態: 服務是否啟動、監聽埠是否開放。
  3. 伺服器端網路配置: 啟用協定、IP/埠設定、防火牆規則。
  4. 用戶端網路配置: 別名、協定順序、驅動程式版本。

標準排查步驟與關鍵指令

1. 基礎網路驗證

# 關閉雙端防火牆後測試
ping            # 失敗 → 檢查網卡、交換機、路由
ping          # 失敗 → 檢查 DNS、NetBIOS、Hosts 檔

2. 服務與埠監聽驗證

telnet  1433
# 成功:閃爍游標 → 服務正常、TCP 1433 開放
# 失敗:無法開啟連線 → 檢查
#   - SQL Server 服務是否啟動
#   - SQL Server 網路配置管理員 → 啟用 TCP/IP
#   - TCP 埠是否為 1433(具名實例為動態埠,需啟用 Browser 服務)

3. 伺服器端配置檢查清單

  • SQL Server Configuration Manager → SQL Server 網路配置 → TCP/IP 啟用、IPAll 埠設為 1433。
  • Windows 防火牆 → 入站規則允許 TCP 1433(及 Browser 服務 UDP 1434)。
  • 錯誤日誌確認啟動訊息:Server is listening on [ 'any' 1433]。

4. 用戶端配置檢查清單

  • SQL Server 用戶端網路工具 / Configuration Manager → 別名正確、協定順序 TCP/IP 優先。
  • 連線字串:Data Source=IP,Port;Network Library=dbmssocn 強制 TCP。
  • 驅動程式版本:建議使用最新 Microsoft ODBC Driver / OLE DB Driver / .NET Data Provider。

進階診斷技巧

  • netstat -ano | findstr 1433 確認程序持有埠。
  • test- port PowerShell 腳本自動化多伺服器巡檢。
  • 啟用用戶端追蹤:登錄 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSSQLServer\Client\ConnectTo 設定追蹤旗標。

常見陷阱提醒

  • 具名實例未啟用 SQL Server Browser 服務(UDP 1434)。
  • IPv6 優先導致連線延遲,建議用戶端/伺服器端停用 IPv6 或調整綁定順序。
  • 驅動程式版本過舊(如 SQL Server 2000 時代的 ntwdblib.dll)不支援新版認證機制。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved