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

SQL Server 連線失敗三大經典錯誤診斷與解決圖解

     編輯:關於SqlServer

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

診斷步驟:

  1. 網路通訊:ping <Server_IP> 失敗 → 檢查網卡、交換器、路由器、防火牆 (關閉或開放 1433/1434/UDP 1434)。
    ping <Server_Name> 失敗 → DNS/Hosts 檔案解析問題。
  2. 埠連通性:telnet <Server_IP> 1433 失敗 → 伺服器未啟動 SQL Server 服務、未啟用 TCP/IP、埠號非 1433、防火牆封鎖。
  3. 伺服器端網路設定:企業管理員/設定管理工具 → 網路程式庫 → 啟用 Named Pipes、TCP/IP。TCP/IP 屬性確認埠號、取消勾選「隱藏伺服器」(若需列舉)。
  4. 用戶端網路設定:用戶端網路公用程式 → 啟用 Named Pipes、TCP/IP。TCP/IP 埠號與伺服器一致。
    「別名」頁籤可設定連線別名 (如 MyAlias 對應 RealServerName、Named Pipes),解決跨網段名稱解析。

錯誤二:「使用者 'sa' 登入失敗。原因:未與信任的 SQL Server 連線關聯」

原因:伺服器設為「僅 Windows 驗證」,拒絕 SQL Server 驗證帳號 (sa)。

解決:

  1. 企業管理員 → 以 Windows 驗證登入 → 伺服器屬性 → 安全性 → 「SQL Server 和 Windows」 → 重啟服務。
  2. 若無法以 Windows 登入 (把自己鎖在外面) → 修改登錄:
    HKLM\SOFTWARE\Microsoft\MSSQLServer\MSSQLServer\LoginMode : 1 (Windows) → 2 (混合) → 重啟服務。
  3. 還原內建管理員登入:
    企業管理員 → 安全性 → 登入 → 新增 → BUILTIN\Administrators、<MachineName>\Administrator → 角色 sysadmin。

錯誤三:「逾時已過期」

原因:連線建立時間超過用戶端設定的逾時值 (企業管理員預設 4 秒、查詢分析器 15 秒)。常見於跨 Internet 連線、慢速 VPN、網路擁塞。

解決:

  • 企業管理員 → 工具 → 選項 → 進階 → 登入逾時 (秒) → 調大 (如 20-30)。
  • 查詢分析器 → 工具 → 選項 → 連線 → 登入逾時。
  • 應用程式連線字串加入 Connection Timeout=30 (ADO/OLE DB) 或 Connect Timeout=30 (SqlClient)。

應用程式連線字串參考

提供者驗證方式連線字串範本
SQLOLEDB (OLE DB)SQL 驗證Provider=sqloledb;Data Source=Server;Initial Catalog=DB;User Id=uid;Password=pwd;
SQLOLEDBWindows 驗證Provider=sqloledb;Data Source=Server;Initial Catalog=DB;Integrated Security=SSPI;
MSDASQL (ODBC)SQL 驗證Driver={SQL Server};Server=Server;Database=DB;Uid=uid;Pwd=pwd;
MSDASQLWindows 驗證Driver={SQL Server};Server=Server;Database=DB;Trusted_Connection=yes;
System.Data.SqlClient (ADO.NET)SQL 驗證Server=Server;Database=DB;User Id=uid;Password=pwd;
SqlClientWindows 驗證Server=Server;Database=DB;Integrated Security=true;

ODBC 系統 DSN 進階設定

控制台 → 系統管理工具 → 資料來源 (ODBC) → 系統 DSN → 設定 → 「用戶端設定」 → 可指定網路程式庫 (TCP/IP/Named Pipes)、埠號、鎖定頁面等。

總結

連線失敗 90% 屬於網路/通訊協定/埠號/防火牆 (錯誤一)、驗證模式不符 (錯誤二)、逾時設定過小 (錯誤三)。依序排查,多數可在分鐘內解決。

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