您好,登錄后才能下訂單哦!
這篇文章將為大家詳細講解有關如何解決SQLServer2008數據引擎連接問題,文章內容質量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關知識有一定的了解。
當 SQL Server 數據庫引擎實例未運行、服務器名稱鍵入錯誤或者存在網絡問題或防火墻時,通常會發(fā)生“超時時間已到”錯誤。
錯誤文本
在 SQL Server Management Studio 中,此錯誤顯示為:
“無法連接到 <服務器名>。”
“超時時間已到。在操作完成之前超時時間已過或服務器未響應。(Microsoft SQL Server,錯誤: -2)”
在 sqlcmd中,可能出現的超時錯誤包括:
“SQL 網絡接口: 定位指定的服務器/實例時出錯”
“Sqlcmd: 錯誤: Microsoft SQL Server NativeClient : 客戶端無法建立連接?!?/p>
“Sqlcmd: 錯誤: Microsoft SQL Server NativeClient : 登錄超時時間已到?!?/p>
“無法與 SQL Server 建立連接”
“建立與服務器的連接時出錯。當連接到 SQL Server 時,此故障可能會因為 SQL Server 在默認設置下不允許進行遠程連接而引發(fā)的?!?/p>
此錯誤的常見原因
原因 | 解決方法 |
鍵入的服務器名稱不正確。 | 使用正確的服務器名稱,然后重試。 |
服務器中的 SQL Server 服務未運行。 | 啟動 SQL Server 數據庫引擎實例。 |
數據庫引擎實例的 TCP/IP 端口被防火墻阻塞。 | 將防火墻配置為允許訪問數據庫引擎。 |
數據庫引擎由于已被更改或者不是默認實例而不偵聽端口 1433,并且沒有運行 SQL Server Browser 服務。 | 要么啟動 SQL Server Browser 服務,要么指定 TCP/IP 端口號進行連接。 |
SQL Server Browser 服務正在運行,但 UDP 端口 1434 被防火墻阻塞。 | 將防火墻配置為允許訪問服務器上的 UDP 端口 1434,或者連接指定 TCP/IP 端口號。 |
客戶端和服務器未配置為使用相同的網絡協(xié)議。 | 使用 SQL Server 配置管理器,確認服務器和客戶端計算機至少有一個通用的啟用協(xié)議。 |
網絡無法將服務器名稱解析為 IP 地址??墒褂?PING 程序對此進行測試。 | 修復網絡上的計算機名稱解析問題,或者使用服務器的 IP 地址連接。這不是 SQL Server 問題。有關幫助,請參閱 Windows 文檔或與網絡管理員聯(lián)系。 |
無法使用 IP 地址連接到網絡。可使用 PING 程序對此進行測試。 | 修復網絡上的 TCP/IP 問題。這不是 SQL Server 問題。有關幫助,請參閱 Windows 文檔或與網絡管理員聯(lián)系。 |
不常見錯誤
多個服務器 IP 地址
在連接到群集或具有多個 IP 地址的非群集計算機上安裝的 SQL Server 命名實例時,Windows Vista 或 Windows Server 2008 上的客戶端可能會收到此錯誤。所有 SQL Server 版本都可能會出現這種問題。
原因
在連接到遠程計算機上的命名實例時,客戶端使用用戶數據報協(xié)議 (UDP) 連接到 SQL Server 計算機或群集上的 SQL Server Browser 服務以獲取連接端點(TCP 端口號或命名管道)。
WindowsVista 或 Windows Server 2008 客戶端上的防火墻不允許對 UDP 進行松散源映射。即,響應必須是從所查詢的相同 IP 地址中返回的。如果響應不是從最初針對的 IP 地址中返回的,客戶端防火墻將刪除數據包。在嘗試連接到群集服務器或具有多個 IP 地址的非群集服務器計算機時,可能會出現這種問題。
下表介紹可導致 UDP 數據包被刪除的操作系統(tǒng)組合。這可以阻止連接到 SQL Server 的命名實例或未在 TCP 端口 1433 上偵聽的 SQL Server 默認實例。
客戶端操作系統(tǒng) | 運行 SQL Server 的操作系統(tǒng) | SQL Server 2008 結果 | SQL Server 2005 結果 |
Windows XP 或 Windows Server 2003 | Windows XP 或 Windows Server 2003 | UDP 數據包未被刪除。 | UDP 數據包未被刪除。 |
Windows XP 或 Windows Server 2003 | Windows Vista 或 Windows Server 2003 | UDP 數據包未被刪除。 | UDP 數據包未被刪除。 |
Windows Vista 或 Windows Server 2008 | Windows XP 或 Windows Server 2003 | UDP 數據包被刪除。無法連接。 | UDP 數據包被刪除。無法連接。 |
Windows Vista 或 Windows Server 2008 | Windows Vista 或 Windows Server 2008(x86、IA64) | UDP 數據包未被刪除。 | UDP 數據包被刪除。無法連接。 |
Windows Vista 或 Windows Server 2008 | Windows Vista 或 Windows Server 2008 (x64) | UDP 數據包被刪除。無法連接。 | UDP 數據包被刪除。無法連接。 |
解決方法
若要解決此問題,請執(zhí)行以下操作之一:
· 在連接字符串中,將 TCP 端口號或命名管道名稱指定為服務器名稱的一部分。
· 在客戶端計算機上具有高級安全功能的 Windows 防火墻中創(chuàng)建例外。
注意: |
如果在防火墻中創(chuàng)建例外,可能會使計算機或網絡更容易受到惡意用戶或惡意軟件(如病毒)的攻擊。建議您不要使用這種解決方法,此處提供該信息的目的是,如果沒有切實可行的替代方法,您可以自行決定是否采用這種解決方法。 |
· 例外可以是以下任一情況:
· 為連接到 SQL Server 的應用程序添加例外規(guī)則。
· 添加一個入站規(guī)則,以允許來自 SQL Server 計算機或群集的所有可能的 IP 地址的通信。
強行關閉的連接
使用 TCP/IP 連接到SQL Server 時,可能會出現此錯誤。
錯誤文本
該錯誤出現時可能具有以下格式:
· TCP_PROV: 現有連接被遠程主機強行關閉。
· 訪問接口編號: 7,錯誤: 10054,錯誤消息:“TCP 訪問接口: 現有連接已被遠程主機強行關閉…”
· 未處理的異常: 在向服務器發(fā)送請求時發(fā)生傳輸級錯誤。(訪問接口: TCP 訪問接口,錯誤: 0 - 現有連接已被遠程主機強行關閉。)
此錯誤的常見原因
下表列出了此錯誤的常見原因和解決方法。
原因 | 解決方法 |
客戶端已與不支持的 SQL Server Native Client 版本連接。 | 將客戶端計算機更新為 SQL Server Native Client 的服務器版本。 |
發(fā)生故障的網絡硬件正在刪除部分 TCP 通信。 | 使用網絡監(jiān)視程序分析 TCP SYN、ACK 和 FIN 消息。 |
SynAttackProtect設置可能正在刪除連接。 | 請參閱后面的“在 Windows Server 2003 SP1 上運行時,連接可能被強行關閉”部分。 |
在 Windows Server2003 SP1 上運行時,連接可能被強行關閉
當使用大量到 Windows Server 2003 ServicePack 1 上運行的 SQL Server 數據庫引擎實例的客戶端連接嘗試測試可伸縮性時,如果請求到達的速度快于 SQL Server 提供的連接速度,則 Windows 可能會刪除這些連接。這是 Windows Server 2003 Service Pack 1 的一項安全功能,可實現有限的傳入 TCP 連接請求隊列。
若要解決此問題,請使用 regedit.exe 實用工具添加以下注冊表項:
項 | 類型 | 名稱 | 值 |
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\ | DWORD | SynAttackProtect | 00000000 |
安全說明: |
設置此注冊表項可能會使服務器面臨 SYN 泛濫和拒絕服務攻擊的威脅。只有在必要并且了解這些安全風險的情況下,才可以添加此注冊表值。完成測試后,請刪除此注冊表值 |
在管道的另一端沒有進程
連接到 SQL Server 的客戶端如果在 SQL Server 上未啟用命名管道支持時連接到該服務器(即使可以使用其他協(xié)議,如TCP/IP),可能會遇到此命名管道錯誤。
如果服務器上未啟用命名管道,則拒絕客戶端試圖使用命名管道進行連接。以下兩種情況下會出現此錯誤:
· 客戶端試圖只使用命名管道進行連接,而服務器上未啟用命名管道協(xié)議。
· 客戶端試圖使用任何可用的協(xié)議進行連接,但在客戶端協(xié)議順序中,named pipes 列在 TCP 之前。
錯誤文本
named pipes 提供程序:在管道的另一端沒有進程。
Microsoft SQL Server Native Client:通信鏈接失敗。
Microsoft SQL Server NativeClient:在與服務器建立連接時出現錯誤。當連接到 SQL Server 時,此故障可能是因為 SQL Server 在默認設置下不允許進行遠程連接而引發(fā)的。
此錯誤的常見原因
原因 | 解決方法 |
客戶端試圖使用 named pipes 進行連接,而服務器沒有配置為允許使用 named pipes 進行遠程連接。 | 使用 TCP/IP 進行連接,或使用 SQL Server 配置管理器通過 named pipes 進行遠程連接。 |
客戶端協(xié)議順序是在嘗試 TCP 協(xié)議之前試圖使用 named pipes 協(xié)議進行連接,而服務器上未啟用 named pipes。 | 在客戶端計算機上使用 SQL Server 配置管理器,在協(xié)議順序列表中將 TCP 移動到 Named Pipes 之前。 |
關于如何解決SQLServer2008數據引擎連接問題就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。