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

SQL Server 連線常見錯誤分析 (一):伺服器不存在或存取被拒絕

     編輯:關於SqlServer

錯誤現象

錯誤訊息:「SQL Server 不存在或存取被拒絕」。這是最複雜、成因最多樣的連線錯誤,需系統性排查。

可能成因分類

  1. 伺服器名稱/IP 拼寫錯誤。
  2. 伺服器端網路設定錯誤 (通訊協定未啟用、連接埠錯誤、服務未啟動)。
  3. 用戶端網路設定錯誤 (通訊協定、別名、驅動程式)。
  4. 實體網路不通 (網卡、交換器、路由器、防火牆)。
  5. 名稱解析失敗 (DNS、HOSTS、NetBIOS)。

系統性排查步驟

第一步:驗證實體網路連通

ping <伺服器IP>
ping <伺服器名稱>
  • ping IP 失敗 → 檢查實體連線、網卡、交換器、路由、防火牆 (ICMP 可能被封鎖,需暫時開放測試)。
  • ping IP 成功但 ping 名稱 失敗 → **名稱解析問題**,檢查 DNS、WINS,或編輯 C:\Windows\System32\drivers\etc\hosts 加入對應:172.168.10.24 myserver。

第二步:驗證 SQL Server 服務與 TCP 連接埠

telnet <伺服器IP> 1433
  • 畫面閃爍、游標停留左上角 → **TCP 1433 連線成功**,SQL Server 服務正常監聽。
  • 「無法開啟連線」 → 可能原因:
    1. SQL Server 服務未啟動 (服務管理員確認)。
    2. TCP/IP 通訊協定未啟用。
    3. 監聽連接埠非 1433 (動態連接埠/具名實例)。
    4. 防火牆封鎖 1433。

第三步:檢查伺服器端網路設定

路徑:開始 → 程式集 → Microsoft SQL Server → 伺服器網路公用程式

  • 「一般」索引標籤:確認 **已啟用「命名管道」與「TCP/IP」**。
  • TCP/IP → 內容:確認 **預設連接埠 1433**;若勾選「隱藏伺服器」,僅影響列舉瀏覽,不影響指定名稱/IP 連線。

第四步:檢查用戶端網路設定

路徑:開始 → 程式集 → Microsoft SQL Server → 用戶端網路公用程式

  • 「一般」索引標籤:同樣啟用 **命名管道** 與 **TCP/IP**。
  • TCP/IP → 內容:確認 **預設連接埠與伺服器端一致 (1433)**。
  • 「別名」索引標籤:可新增別名 (如 MyAppDB) 指向真實伺服器名稱/IP,方便應用程式設定,類似 HOSTS 檔功能。

特殊情況補充

情況處理方式
具名實例 (Named Instance)需啟動 SQL Browser 服務 (UDP 1434);連線字串指定 Server=Host\Instance 或 Server=Host,Port
防火牆/ISA Server暫時關閉測試;開放 TCP 1433 (預設實例) 或動態連接埠範圍 + UDP 1434
驅動程式版本不符用戶端安裝最新 MDAC / SQL Native Client / ODBC Driver
IPv6 環境確認 SQL Server 監聽 IPv6 (::1) 或強制 IPv4 連線

快速驗證腳本 (CMD)

REM 1. 基本連通
ping 192.168.1.100

REM 2. TCP 連接埠
telnet 192.168.1.100 1433

REM 3. 用戶端別名測試 (若已設定)
osql -S MyAlias -U sa -P password -Q "SELECT @@VERSION"

總結

依序 **實體網路 → 名稱解析 → TCP 連接埠 → 伺服器端通訊協定 → 用戶端通訊協定/別名** 排查,可解決 95% 以上「伺服器不存在或存取被拒絕」錯誤。

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