1. 程式人生 > >使用SQL Server 2008遠端連結時SQL資料庫不成功的解決方案

使用SQL Server 2008遠端連結時SQL資料庫不成功的解決方案

遠端連線sql server 2008,伺服器端和客戶端配置

關鍵設定:

第一步(SQL2005、SQL2008):

開始-->程式-->Microsoft SQL Server 2008(或2005)-->配置工具-->SQL Server 配置管理器-->SQL Server網路配置-->MSSQLSERVER(這個名稱以具體例項名為準) 的協議-->TCP/IP-->右鍵-->啟用

第二步:

SQL2005:

開始-->程式-->Microsoft SQL Server 2005-->配置工具-->SQL Server 2005外圍應用配置器-->服務和連線的外圍應用配置器 -->Database Engine -->遠端連線,選擇本地連線和遠端連線並選上同時使用Tcp/Ip和named pipes.

(附:如何配置 SQL Server 2005 以允許遠端連線:http://support.microsoft.com/kb/914277/zh-cn )

SQL2008:

開啟SQL Server Management Studio-->在左邊[物件資源管理器]中選擇第一項(主資料庫引擎)-->右鍵-->方面-->在方面的下拉列表中選擇[外圍應用配置器]-->將RemoteDacEnable置為True.(這一步很關鍵

Express:

如果XP有開防火牆,在例外裡面要加入以下兩個程式:
C:/Program Files/Microsoft SQL Server/MSSQL.1/MSSQL/Binn/sqlservr.exe,
C:/Program Files/Microsoft SQL Server/90/Shared/sqlbrowser.exe

第三步:

開始-->程式-->Microsoft SQL Server 2008(或2005)-->配置工具-->SQL Server 配置管理器-->SQL Server 服務-->右擊SQL Server(MSSQLSERVER) (注:括號內以具體例項名為準)-->重新啟動

第四步:

伺服器端開啟sa使用者。開始 -> 程式 -> Microsoft SQL Server 2008 -> Microsoft SQL Server Management Studio -> 主資料庫引擎 -> 安全性 -> 登入名 -> sa,設定密碼。

第五步:

在客戶端登陸伺服器端資料庫。如下圖所示:

第六步:

C#工程更改資料庫連線字串。開啟C#工程 -> 解決方案資源管理器 -> app.config -> 更改。示例如下:

[c-sharp] 

connectionString="data source=伺服器IP/例項名;initial catalog=資料庫名;User ID=使用者名稱;password=密碼" 

第七步:

Good Luck! Enjoy……

使用者在使用SQL Server 2008遠端連結時,可能會彈出如下對話方塊:

在連結SQL伺服器時發生網路連結錯誤或特定例項錯誤。SQL伺服器不存在或者連結不成功。請驗證使用者名稱是否正確或SQL伺服器是否已經配置遠端連結功能。(錯誤發現方:命名管道供應方。錯誤代號:40---無法和SQL伺服器進行連結)

如何處理這一問題?

使用者如果發現這個錯誤提醒,需要檢查三個方面的配置,並做出相關修改。(以下所標註的配置措施均以SQL 2008伺服器為模板)

(一)使用者需要做的第一件事是檢查SQL資料庫伺服器中是否允許遠端連結。在SQL 2008伺服器中可以通過開啟SQL Server 2008管理專案(SQL Server 2008 Management Studio,)來完成這項檢查。其具體操作為:

(1)右擊SQL Server 2008選項,選擇SQL Server 2008 Management Studio:

(2)開啟“伺服器屬性(Server Properties)” (右鍵連線名稱-屬性)

選擇“允許使用者對該伺服器進行遠端連結”選項後,檢查是否問題已經排除。如果遠端連結已經成功,該過程已經完成。若使用者發現“提醒錯誤對話方塊”依然彈出,那麼還需要做的是:

(二)為微軟SQL伺服器(MSSQLServer)配置相應協議。

  此時使用者要做的是檢查SQL網路連結配置。開啟“SQL伺服器配置管理”選項>開啟“該節點的SQL伺服器網路配置選項”>選擇“微軟SQL伺服器網路協議”選項(或使用者的SQL伺服器中為SQL伺服器配置網路協議的選項,不同版本的SQL名稱可能不同):

確定“微軟SQL伺服器網路選項協議”中的TCP/IP協議對伺服器來說是有效的。再次檢查是否已經可以執行遠端連結。若“錯誤提醒對話方塊”依然彈出,我們需要進一步檢查SQL伺服器防火牆選項。

(三)檢查SQL伺服器防火牆設定 (快捷步驟-直接關閉防火牆(不安全))

如果在進行完上兩步操作後,使用者端計算機仍然無法遠端連結到SQL伺服器,使用者需要做的是對SQL伺服器防火牆進行重新配置。在進行這一步操作時,首先找到SQL伺服器上那個埠支援TCP/IP協議。使用者可以在SQL伺服器防火牆已經處於執行狀態下,點選“TCP/IP協議”選擇“屬性”:

  從上圖中我們可以看出,這臺SQL伺服器上支援TCP/IP協議的是1433埠。下一步要做的是在防火牆的配置中允許1433埠支援TCP/IP協議即可。如果伺服器上執行的是Windows 7作業系統,其配置步驟為(其他微軟作業系統的做法類似),開啟“控制面板”選擇“Windows防火牆”選項:

  選擇“高階設定”後,在右邊選單欄中找出“具有高階安全選項的Windows防火牆”並將其開啟。開啟後會發現在左邊選單欄中有“入站規則(Inboud Rules)”選項。將該選項開啟,並在右邊選單欄中選擇“新建規則(New Rule)”選項:

開啟“新建規則”選項後,利用“新內建繫結規則嚮導”為1433埠配置“內部繫結協議”配置為適用於TCP/IP協議即可。(前提是,需要完成該步驟以前所述的所有步驟),根據下面的幾幅圖為1433埠配置適用於1433埠即可:

完成上述的三大步驟,並確認每一步都操作正確後,使用者的SQL伺服器即可支援遠端連結,一切萬事ok了。

(注意:完成第二步驟的時候,必須先重啟sql服務才可以)(net stop mssqlserver   net start mssqlserver)。