剛剛安裝的數據庫系統,按照默認安裝的話,很可能在進行遠程連接時報錯,通常是錯誤:"在連接到 SQL Server 2005 時,在默認的設置下 SQL Server 不允許進行遠程連接可能會導致此失敗。 (provider: 命名管道提供程序, error: 40 - 無法打開到 SQL Server的連接) ",現在針對此問題總結如下:
明白了SQL Server是個網絡數據庫就可迎刃而解了,簡單的分為下面的幾種情況。
◆1.數據庫引擎沒有啟動。有兩種啟動方式:
(1)開始->程序->Microsoft SQL Server 2005->SQL Server 2005外圍應用配置器,在打開的界面單擊"服務的連接的外圍應用配置器",在打開的界面中找到Database Engine,單擊"服務",在右側查看是否已啟動,如果沒有啟動可單擊"啟動",並確保"啟動類型"為自動,不要為手動,否則下次開機時又要手動啟動;
(2)可打開:開始->程序->Microsoft SQL Server 2005->配置工具->SQL Server Configuration Manager,選中SQL Server 2005服務中SQL Server(MSSQLSERVER) ,並單擊工具欄中的"啟動服務"按鈕把服務狀態改為啟動;
使用上面兩種方式時,有時候在啟動的時候可能會出現錯誤,不能啟動,這時就要查看"SQL Server 2005配置管理器"中的SQL Server 2005網絡配置->MSSQLSERVER協議中的VIA是否已啟用,如果已啟用,則把它禁止.然後再執行上述一種方式操作就可以了.
◆2.是否已經允許遠程連接。這個部分可以簡單的分為4個方面,分別是在 SQL Server上啟用遠程連接、啟用SQL Server 瀏覽服務、在Windows 防火墻中為SQL Server 2005 創建例外和在Windows 防火墻中為「SQLBrowser」創建例外。下面是幾個具體的操作方式:
在SQLServer 實例上啟用遠程連接
◆1.指向「開始->程序->Microsoft SQL Server 2005->配置工具->SQL Server 外圍應用配置器」
◆2.在「SQL Server 2005 外圍應用配置器」頁, 單擊「服務和連接的外圍應用配置器」
◆3.然後單擊展開「數據庫引擎」, 選中「遠程連接」,在右邊選中「本地連接和遠程連接」,
再選擇要使用的協議,( 這個地方應當啟用TCP/IP 和命名管道服務!)單擊「應用」,您會看到下消息:
「直到重新啟動數據庫引擎服務後,對連接設置所做的更改才會生效。」,單擊「確定」按鈕返回
◆4.展開「數據庫引擎」, 選中「服務」,在右邊單擊「停止」,等到 MSSQLSERVER 服務停止,
然後單擊「啟動」,重新啟動MSSQLSERVER 服務。
啟用SQLServer 瀏覽器服務
◆1.指向「開始->程序->Microsoft SQL Server 2005->配置工具->SQL Server 外圍應用配置器」
◆2.在「SQL Server 2005 外圍應用配置器」頁, 單擊「服務和連接的外圍應用配置器」
◆3.然後單擊展開「SQL Server Browser」, 選中「服務」,在右邊「啟動類型」選擇「自動」,
再單擊「啟動」,單擊「確定」按鈕返回
在Windows 防火墻中為「SQL Server 2005」創建例外
◆1.在 Windows 防火墻設置界面中,選擇「 例外」 選項卡,然後單擊「添加程序」
◆2.在「添加程序窗口」中單擊「瀏覽」
◆3.然後找到「C:\ProgramFiles\Microsoft Files\Microsoft SQL Server\ MSSQL.1 \MSSQL\Binn\sqlservr.exe」,
單擊「確定」返回
註意 : 路徑可能會根據 SQL Server 2005 安裝不同而不同。 MSSQL.1 是占位符,對應數據庫實例ID。
◆4.對每個需要打開遠程訪問的SQL Server 2005 實例,重復步驟 1 至 3。
在Windows 防火墻中為「SQLBrowser」創建例外
◆1.在 Windows 防火墻設置界面中,選擇「 例外」 選項卡,然後單擊「添加程序」
◆2.在「添加程序窗口」中單擊「瀏覽」
◆3.然後找到「C:\ProgramFiles\Microsoft Files\Microsoft SQL Server\90\Shared\sqlbrowser.exe」,
單擊「確定」返回
註意 :路徑可能會根據 SQL Server 2005 安裝不同而不同。在使用.NET開發進行時,會遇到使用連接字符串連接SQL Server 2005數據庫使用機器名稱和localhost都能連接,但是使用IP地址卻不能連接的問題,解決的辦法是在SQL Server實例上啟用本地和遠程連接,並且在選擇協議的時候使用TCP/IP和命名管道服務即可解決。