今天我們將要討論的是大家使用SQL Server時都會遇到使用SQL Server Management Studio無法連接遠(yuǎn)程數(shù)據(jù)庫實例的問題,。
許多初學(xué)者在使用SQL Server時都會遇到使用SQL Server Management Studio無法連接遠(yuǎn)程數(shù)據(jù)庫實例的問題,大致的錯誤描述如下: 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) 意思是說不能在數(shù)據(jù)庫之間建立一個連接,,原因是命名管道提供者出現(xiàn)錯誤,。其實這是一個比較典型的數(shù)據(jù)庫服務(wù)器設(shè)置問題,在局域網(wǎng)或廣域網(wǎng)中都可能會遇到,,我們只需要對數(shù)據(jù)庫服務(wù)器進(jìn)行一些配置便可以解決這個問題,,來看看具體的步驟。 確保服務(wù)器端數(shù)據(jù)庫服務(wù)已經(jīng)啟動 開始->所有程序->Microsoft SQL Server 2008->Configutation Tools,,打開SQL Server Configuration Manager,,點(diǎn)擊SQL Server Services,查看數(shù)據(jù)庫服務(wù)是否已經(jīng)啟動,,如果服務(wù)未開啟,,手動啟動它。當(dāng)然,,你還可以通過點(diǎn)擊Windows中的開始->控制面板->管理者工具->服務(wù),,來查看相應(yīng)的數(shù)據(jù)庫服務(wù)是否啟動?;蛘呷绻?wù)器和你的機(jī)器在同一網(wǎng)絡(luò),,你還可以通過命令“sqlcmd -L”(注意L要大寫)去查看該網(wǎng)絡(luò)內(nèi)所有可用的SQL Server服務(wù)器。 在SQL Server Configuration中啟用TCP/IP 多個SQL Server服務(wù)器之間通過網(wǎng)絡(luò)相互通信是需要TCP/IP支持的,,為使SQL Server服務(wù)器能被遠(yuǎn)程連接必須確保TCP/IP已經(jīng)啟用,。按照前面介紹的步驟打開SQL Server Configuration Manager,然后打開SQL Server Network Configuration,,選擇你要設(shè)置的數(shù)據(jù)庫,,然后點(diǎn)擊TCP/IP,右鍵啟用,。如果有必要,,你還可以啟用Named Pipes。記住,,所有的修改都必須在重啟SQL Server服務(wù)之后才能生效,! 在Windows防火墻中打開SQL Server的端口號 很多時候我們在對數(shù)據(jù)庫服務(wù)器本身做了很多次設(shè)置后仍然無法成功建立遠(yuǎn)程連接,這時就要考慮是否是防火墻在作怪,。默認(rèn)情況下,,許多端口號和服務(wù)都會被防火墻所禁止而不能遠(yuǎn)程訪問或執(zhí)行,SQL Server默認(rèn)的端口號也不例外,。我們應(yīng)該重新設(shè)置Windows防火墻給SQL Server添加例外,。除非人為修改,默認(rèn)情況下SQL Server的端口號是1433,,將該端口號添加到Windows防火墻中,。如果SQL Server存在命名實例,,那么也應(yīng)該將SQL Server browser添加到Windows防火墻中。(有關(guān)SQL Server的命名實例將在后面介紹) 打開Windows控制面板,,選擇Windows防火墻->Change Settings->Exceptions->Add Port 點(diǎn)擊Add port...在彈出的對話框中填入: Name: SQL Port Number: 1433 Protocol: Select TCP 在SQL Server管理器中啟用遠(yuǎn)程連接 這一步通常會被數(shù)據(jù)庫管理員忽略,,如果未啟用數(shù)據(jù)庫遠(yuǎn)程連接,數(shù)據(jù)庫實例只允許在本地進(jìn)行連接而不能被遠(yuǎn)程連接,,啟用遠(yuǎn)程連接同樣非常重要,。默認(rèn)設(shè)置中遠(yuǎn)程連接是被禁止的。如下圖,,打開SQL Server Management Studio,,右鍵點(diǎn)擊數(shù)據(jù)庫實例然后選擇屬性菜單。 在打開的窗口中,,左側(cè)選擇Connections,,然后勾選"Allow remote connections to this server"。 啟用SQL Server Browser服務(wù) 如果SQL Server在安裝時不是用的默認(rèn)實例名而是自定義的實例名,,并且沒有配置特定的TCP/IP端口號,,那么按照我們前面的描述SQL Server仍然不能支持遠(yuǎn)程連接。但如果你啟用的SQL Server Browser服務(wù),,便可以通過動態(tài)TCP/IP端口號進(jìn)行遠(yuǎn)程SQL Server連接,。啟用SQL Server Browser服務(wù)非常簡單,與啟用SQL Server類似,,在SQL Server Configuration Manager中右鍵點(diǎn)擊SQL Server Browser,,然后選擇啟用。啟用該服務(wù)將會影響到服務(wù)器上所有已安裝的SQL Server實例,。 在防火墻中為sqlbrowser.exe應(yīng)用程序創(chuàng)建例外 我們在前面已經(jīng)提到了,,自定義命名的SQL Server實例要支持遠(yuǎn)程連接需要啟用sqlbrowser服務(wù),Windows防火墻可能會阻止該服務(wù)執(zhí)行,。因此,,我們必須在Windows防火墻中給sqlbrowser服務(wù)添加例外。 首先找到服務(wù)器上安裝sqlbrowser.exe程序的路徑,,如C:\Program Files\Microsoft SQL Server\90\Shared\sqlbrowser.exe,。如果不確定SQL Server安裝在什么地方,你可以在Windows搜索一下文件名,。與我們在前面介紹的在防火墻中添加SQL TCP/IP端口號的方法類似,,給sqlbrowser.exe應(yīng)用程序添加防火墻例外。 重新創(chuàng)建數(shù)據(jù)庫別名 創(chuàng)建SQL Server別名并在應(yīng)用程序中使用它很常見,。使用數(shù)據(jù)庫別名可以確保一旦數(shù)據(jù)庫的位置發(fā)生了變化,,如更換了新的服務(wù)器,IP地址發(fā)生了變化等,,應(yīng)用程序中的數(shù)據(jù)庫連接字符串不用修改,。否則你更換了數(shù)據(jù)庫的位置,你還要通知所有使用該數(shù)據(jù)庫的應(yīng)用程序修改源代碼或配置文件中的連接字符串,,這恐怕是不可能的,。所以,使用數(shù)據(jù)庫別名來配置連接字符串是一個非常明智的選擇,。另外,,你還可以使用相同的別名來指向不同的數(shù)據(jù)庫實例,當(dāng)修改別名參數(shù)時,,可以馬上實現(xiàn)數(shù)據(jù)庫之間的切換,。創(chuàng)建數(shù)據(jù)庫別名非常簡單,在SQL Server Configuration Manager中選擇Aliases進(jìn)行創(chuàng)建,。 |
|
來自: 筱肆 > 《網(wǎng)文收藏》