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