2016-07-01 70 views
0

我有使用TCP/IP訪問SQL服務器的問題。接受SQL服務器中來自aLL IP的遠程TCP/IP請求

我想SQL實例從機器所有的網絡適配器接受客戶端。

我轉到配置管理器控制檯並啓用TCP/IP,將TCP端口設置爲1433(或任何其他端口),將「TCP動態端口」設置爲空白並將「全部收聽」設置爲true。這些更改後,我重新啓動SQL服務器服務並啓動SQL服務將失敗。對於啓動SQL服務,我必須將「Listen All」更改爲false,然後服務將成功啓動。

但禁用「全部收聽」後,您必須在「IP地址」選項卡中設置適配器IP,並且SQL將只接受來自該IP的請求,並且如果您未指定任何IP,則SQL不會接受任何TCP/IP請求。

現在我需要知道爲什麼啓用「全部收聽」會導致服務失敗。我該如何解決這個問題?

我跑了「netstate -a」,我看到沒有應用程序在TCP端口1433。

當「Listen ALL」被禁用並且我沒有添加任何特定的IP但是,我使用「portquery.exe」檢查SQL瀏覽器服務(UDP 1434),並且SQL瀏覽器響應不包含任何TCP端口。

後我加1個特定IP SQL瀏覽器服務包括TCP 1433

正如我提到的,如果我能「聽ALL」,SQL服務將失敗並重新啓動後無法啓動。

後重新啓動服務失敗我檢查Windows事件viwer,我看到4錯誤如下:出現錯誤0xd,狀態代碼0x10的失敗

  1. TDSSNIClient初始化。原因:無法從TCP/IP協議的「IPAll」配置項中檢索註冊表設置。數據無效。

  2. TDSSNICient初始化失敗,錯誤0xd,狀態碼0x1。原因:初始化因基礎結構錯誤而失敗。檢查以前的錯誤。數據無效。

  3. 由於網絡庫中存在內部錯誤,無法啓動網絡庫。要確定原因,請查看錯誤日誌中此錯誤之前的錯誤。

  4. SQL Server無法產生FRunCommunicationsManager線程。檢查SQL Server錯誤日誌和Windows事件日誌以獲取有關可能的相關問題的信息。

最後,我該如何收聽所有IP?

感謝

這是我rgistry IPAll

enter image description here

+1

這可能更適合[Stack DBA](http://dba.stackexchange.com/)。如果你同意你可以通過點擊「標誌」來移動......應該關閉...... >>關閉主題,因爲...... >>這個問題屬於堆棧交換網絡中的另一個站點。 –

+0

有沒有人幫我? – hamed

回答

0

This article的形象似乎指的是同一個問題。下面是關於如何解決問題的部分。也許這也是解決您的問題的方法。

因此,錯誤表示IPAll配置密鑰中的數據無效。 反正這個關鍵在哪裏? TCP協議和IPAll 子項,分別位於:

HKEY_LOCAL_MACHINESoftwareMicrosoftMicrosoft SQL ServerMSSQLServerSuperSocketNetLib

下IPAll子項,你會發現同樣的兩個「TCP動態端口」 和「TCP端口」鍵。檢查TCP動態端口密鑰的值。做 你在那看到空白嗎?如果是這樣,那麼最可能的原因是 服務啓動失敗。刪除空白應該修復 的問題,服務應該聯機就好了。

+0

hello @DAXholic。我添加了註冊表的圖像,我沒有看到您提到的空白,您是否看到任何問題? – hamed

+0

當然不是 - 它是一個空格,所以我應該怎麼看它:)你必須雙擊TcpDynamicPorts鍵,這樣編輯對話框纔會打開,然後當選擇字段的值時,你可以檢查是否有空格或某些東西就像它在 – DAXaholic

+0

親愛的@Daxaholic很遺憾沒有空白 – hamed