我們在在使用SQL Server時都會遇到使用SQL Server Management Studio無法連線遠端資料庫例項的問題,錯誤描述資訊摘錄如下:
An error has occurred while establishing a connection to the server.
(provider: Named Pipes Provider, error: 40 – Could not open a connection to SQL Server) (Microsoft SQL Server, Error: 5)
An error has occurred while establishing a connection to the server. When connecting to SQL Server 2005, this failure may be caused by the fact that under the default settings SQL Server does not allow remote connections. (provider: Named Pipes Provider, error: 40 – Could not open a connection to SQL Server) (Microsoft SQL Server, Error: 1326)
開始->所有程式->Microsoft SQL Server 2008->Configutation Tools,開啟SQL Server Configuration Manager,點選SQL Server Services,檢視資料庫服務是否已經啟動,如果服務未開啟,手動啟動它。當然,你還可以透過點選Windows中的開始->控制面板->管理者工具->服務,來檢視相應的資料庫服務是否啟動。或者如果伺服器和你的機器在同一網路,你還可以透過命令“sqlcmd -L”(注意L要大寫)去檢視該網路內所有可用的SQL Server伺服器。
第二步:在SQL Server Configuration中啟用TCP/IP
多個SQL Server伺服器之間透過網路相互通訊是需要TCP/IP支援的,為使SQL Server伺服器能被遠端連線必須確保TCP/IP已經啟用。按照前面介紹的步驟開啟SQL Server Configuration Manager,然後開啟SQL Server Network Configuration,選擇你要設定的資料庫,然後點選TCP/IP,右鍵啟用。如果有必要,你還可以啟用Named Pipes。記住,所有的修改都必須在重啟SQL Server服務之後才能生效!
第三步:在Windows防火牆中開啟SQL Server的埠號
很多時候我們在對資料庫伺服器本身做了很多次設定後仍然無法成功建立遠端連線,這時就要考慮是否是防火牆在作怪。預設情況下,許多埠號和服務都會被防火牆所禁止而不能遠端訪問或執行,SQL Server預設的埠號也不例外。我們應該重新設定Windows防火牆給SQL Server新增例外。除非人為修改,預設情況下SQL Server的埠號是1433,將該埠號新增到Windows防火牆中。如果SQL Server存在命名例項,那麼也應該將SQL Server browser新增到Windows防火牆中。(有關SQL Server的命名例項將在後面介紹)
開啟Windows控制面板,選擇Windows防火牆->Change Settings->Exceptions->Add Port
Name: SQL
Port Number: 1433
Protocol: Select TCP
第四步:在SQL Server管理器中啟用遠端連線
這一步通常會被資料庫管理員忽略,如果未啟用資料庫遠端連線,資料庫例項只允許在本地進行連線而不能被遠端連線,啟用遠端連線同樣非常重要。預設設定中遠端連線是被禁止的。如下圖,開啟SQL Server Management Studio,右鍵點選資料庫例項然後選擇屬性選單。
在開啟的視窗中,左側選擇Connections,然後勾選"Allow remote connections to this server"。
這個問題主要出現在安裝S Q L資料庫上面。
SQL Server 出現Error: 1326錯誤
我們在在使用SQL Server時都會遇到使用SQL Server Management Studio無法連線遠端資料庫例項的問題,錯誤描述資訊摘錄如下:
An error has occurred while establishing a connection to the server.
(provider: Named Pipes Provider, error: 40 – Could not open a connection to SQL Server) (Microsoft SQL Server, Error: 5)
An error has occurred while establishing a connection to the server. When connecting to SQL Server 2005, this failure may be caused by the fact that under the default settings SQL Server does not allow remote connections. (provider: Named Pipes Provider, error: 40 – Could not open a connection to SQL Server) (Microsoft SQL Server, Error: 1326)
上面這段英文的翻譯後大概是說:不能在資料庫之間建立一個連線,原因是命名管道提供者出現錯誤。其實這是一個比較典型的資料庫伺服器設定問題,在區域網或廣域網中都可能會遇到,我們只需要對資料庫伺服器進行一些配置便可以解決這個問題,來看看具體的步驟。
第一步:確保伺服器端資料庫服務已經啟動
開始->所有程式->Microsoft SQL Server 2008->Configutation Tools,開啟SQL Server Configuration Manager,點選SQL Server Services,檢視資料庫服務是否已經啟動,如果服務未開啟,手動啟動它。當然,你還可以透過點選Windows中的開始->控制面板->管理者工具->服務,來檢視相應的資料庫服務是否啟動。或者如果伺服器和你的機器在同一網路,你還可以透過命令“sqlcmd -L”(注意L要大寫)去檢視該網路內所有可用的SQL Server伺服器。
第二步:在SQL Server Configuration中啟用TCP/IP
多個SQL Server伺服器之間透過網路相互通訊是需要TCP/IP支援的,為使SQL Server伺服器能被遠端連線必須確保TCP/IP已經啟用。按照前面介紹的步驟開啟SQL Server Configuration Manager,然後開啟SQL Server Network Configuration,選擇你要設定的資料庫,然後點選TCP/IP,右鍵啟用。如果有必要,你還可以啟用Named Pipes。記住,所有的修改都必須在重啟SQL Server服務之後才能生效!
第三步:在Windows防火牆中開啟SQL Server的埠號
很多時候我們在對資料庫伺服器本身做了很多次設定後仍然無法成功建立遠端連線,這時就要考慮是否是防火牆在作怪。預設情況下,許多埠號和服務都會被防火牆所禁止而不能遠端訪問或執行,SQL Server預設的埠號也不例外。我們應該重新設定Windows防火牆給SQL Server新增例外。除非人為修改,預設情況下SQL Server的埠號是1433,將該埠號新增到Windows防火牆中。如果SQL Server存在命名例項,那麼也應該將SQL Server browser新增到Windows防火牆中。(有關SQL Server的命名例項將在後面介紹)
開啟Windows控制面板,選擇Windows防火牆->Change Settings->Exceptions->Add Port
Name: SQL
Port Number: 1433
Protocol: Select TCP
第四步:在SQL Server管理器中啟用遠端連線
這一步通常會被資料庫管理員忽略,如果未啟用資料庫遠端連線,資料庫例項只允許在本地進行連線而不能被遠端連線,啟用遠端連線同樣非常重要。預設設定中遠端連線是被禁止的。如下圖,開啟SQL Server Management Studio,右鍵點選資料庫例項然後選擇屬性選單。
在開啟的視窗中,左側選擇Connections,然後勾選"Allow remote connections to this server"。