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

SQL Server 連線失敗「不存在或拒絕存取」完整排查流程圖解

     編輯:關於SqlServer

錯誤現象

The Network Adapter could not establish the connection / [DENETLTB][ConnectionOpen(Connect())] SQL Server不存在或拒絕存取

分層排查清單 (由網路到應用)

第 1 層:網路通達性

  1. ping <Server IP> 失敗 → 檢查實體連線、交換器、路由、VPN。
  2. ping <Server Name> 失敗 → DNS/Hosts 檔解析問題。
  3. telnet <IP> 1433 失敗 → 連接埠未開放或防火牆攔截。

第 2 層:SQL Server 服務與協定

  1. 服務是否運行:services.msc → SQL Server (MSSQLSERVER/具名實例) 狀態「已啟動」。
  2. TCP/IP 協定啟用:
    SQL Server Configuration Manager → 「SQL Server 網路設定」 → 實例 → TCP/IP → 啟用 → IPAll 連接埠設 1433 (清空動態連接埠) → 重啟服務。
  3. Named Pipes 同步啟用 (內網相容)。
  4. Surface Area Configuration (SQL 2005/2008) → 「遠端連接」 → 勾選「本地和遠端」+「TCP/IP」。

第 3 層:防火牆與安全軟體

  • Windows 防火牆:輸入規則新增 TCP 1433 (SQL)、TCP 1434 (Browser 服務)。
  • 第三方防毒/防火牆 (ISA, Symantec, 360 等) 加入白名單或暫時關閉測試。

第 4 層:驗證模式與登入權限

  1. 企業管理器/SSMS → 伺服器屬性 → 安全性 → SQL Server 和 Windows 驗證模式 → 重啟服務。
  2. 登入帳號存在、對應資料庫用戶、授權 db_datareader/db_datawriter 或 db_owner。
  3. 若原為「僅 Windows」導致 sa 失效:
    註冊表 HKLM\SOFTWARE\Microsoft\MSSQLServer\MSSQLServer\LoginMode = 2 (混合) → 重啟服務。
    補齊 BUILTIN\Administrators、<Machine>\Administrator 登入與 sysadmin 角色。

第 5 層:連線字串與用戶端設定

  • UDL 測試:提供者 Microsoft OLE DB Provider for SQL Server,伺服器 IP\Instance,Port (如 192.168.1.22\SQLEXPRESS,1433)。
  • JDBC URL:
    jdbc:sqlserver://IP:1433;databaseName=DB (2005+ 驅動)
    jdbc:microsoft:sqlserver://IP:1433;DatabaseName=DB (2000 驅動)
  • ODBC DSN:系統 DSN、驅動 SQL Server Native Client、同樣 IP\Instance,Port。

第 6 層:修補程式 (經驗法則)

SQL Server 2000 **未安裝 SP4** 是高機率原因。
下載 SQL2000-KB884525-SP4-x86-CHS.exe,解壓後執行 setup.bat 而非直接雙擊 exe。

快速驗證腳本


-- SSMS 執行
SELECT @@SERVERNAME, @@VERSION, SERVERPROPERTY('IsClustered');
-- 連線測試
sqlcmd -S IP\Instance -U sa -P pwd -Q "SELECT DB_NAME()"
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved