許多初學者在使用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
點擊Add port...在彈出的對話方塊中填入:
Name: SQL
Port Number: 1433
Protocol: Select TCP
在SQL Server管理器中啟用遠端連線
這一步通常會被資料庫管理員忽略,如果未啟用資料庫遠端連線,資料庫實例只允許在本地進行連接而不能被遠端連線,啟用遠端連線同樣非常重要。預設設置中遠端連線是被禁止的。如下圖,打開SQL Server Management Studio,右鍵點擊資料庫實例然後選擇屬性功能表。
在打開的視窗中,左側選擇Connections,然後勾選"Allow remote connections to this server"。
啟用SQL Server Browser服務
如果SQL Server在安裝時不是用的預設實例名而是自訂的實例名,並且沒有配置特定的TCP/IP埠號,那麼按照我們前面的描述SQL Server仍然不能支援遠端連線。但如果你啟用的SQL Server Browser服務,便可以通過動態TCP/IP埠號進行遠端SQL Server連接。啟用SQL Server Browser服務非常簡單,與啟用SQL Server類似,在SQL Server Configuration Manager中右鍵點擊SQL Server Browser,然後選擇啟用。啟用該服務將會影響到伺服器上所有已安裝的SQL Server實例。