很久筆者沒(méi)有來(lái)這里寫(xiě)東西了,因?yàn)檎娴暮苊Α?/p>
最近筆者一直在使用Win2008系統(tǒng),不過(guò)發(fā)現(xiàn)一個(gè)很奇怪的問(wèn)題,那就是在該系統(tǒng)上安裝了SQL2005后,再在其他計(jì)算機(jī)訪問(wèn)該主機(jī)顯示不能訪問(wèn)。
![](/d/20211018/e109ab9b2a36d4a3ecd85f7d726e9e3e.gif)
其他主機(jī)上也安裝了SQL2005,可是連接Win2008系統(tǒng)上的SQL時(shí)就出現(xiàn)了這樣的報(bào)錯(cuò)信息。
當(dāng)時(shí)筆者很困惑,是為什么?
因?yàn)閃in2003系統(tǒng)中,從來(lái)不會(huì)有這樣的問(wèn)題發(fā)生。
筆者錯(cuò)誤的任務(wù),是Win2008系統(tǒng)和SQL2005系統(tǒng)的不兼容,或者有不匹配的問(wèn)題導(dǎo)致了這樣的問(wèn)題發(fā)生。
經(jīng)過(guò)很長(zhǎng)時(shí)間的想法,筆者出了很多解決方案。
其中一個(gè)就是,在Win2008系統(tǒng)上安裝SQL2008。
這樣屬于同一時(shí)代的系統(tǒng),就不應(yīng)該出現(xiàn)這樣的問(wèn)題。
以下是其它網(wǎng)友的補(bǔ)充:
vs2008連接sql2005的問(wèn)題(provider:命名管道提供程序,error:40-無(wú)法打開(kāi)到 SQL Server 的連接)
未找到或無(wú)法訪問(wèn)服務(wù)器。請(qǐng)驗(yàn)證實(shí)例名稱是否正確并且 SQL Server 已配置為允許遠(yuǎn)程連接。 (provider: Named Pipes Provider, error: 40 - 無(wú)法打開(kāi)到 SQL Server 的連接)
主要過(guò)程:
1.在 Visual Web Developer 中,切換到“設(shè)計(jì)”視圖中。
2.從“工具箱”的“數(shù)據(jù)”文件夾中,將 GridView 控件拖動(dòng)到頁(yè)面上。
3.如果未顯示“GridView 任務(wù)”快捷菜單,則右擊 GridView 控件,然后單擊“顯示智能標(biāo)記”。
4.在“GridView 任務(wù)”菜單上的“選擇數(shù)據(jù)源”列表中,單擊“新建數(shù)據(jù)源>”。
出現(xiàn)“數(shù)據(jù)源配置”對(duì)話框。
5.單擊“數(shù)據(jù)庫(kù)”。
這將指定您要從支持 SQL 語(yǔ)句的數(shù)據(jù)庫(kù)中獲取數(shù)據(jù)。此類(lèi)數(shù)據(jù)庫(kù)包括 SQL Server 和其他與 OLE-DB 兼容的數(shù)據(jù)庫(kù)。
在“為數(shù)據(jù)源指定 ID”框中,將顯示默認(rèn)的數(shù)據(jù)源控件名稱(“SqlDataSource1”)??梢员A舸嗣Q。
6.單擊“確定”。
7.隨即會(huì)顯示“配置數(shù)據(jù)源”向?qū)?,其中顯示了一個(gè)可在其中選擇連接的頁(yè)面。
單擊“新建連接”。
8.在“選擇數(shù)據(jù)源”對(duì)話框的“數(shù)據(jù)源”下,單擊“Microsoft SQL Server”,然后單擊“繼續(xù)”。
即出現(xiàn)“添加連接”對(duì)話框。
9.在“服務(wù)器名”框中,輸入要使用的 SQL Server 的名稱。
10.在登錄憑據(jù)中,選擇可用于訪問(wèn) SQL Server 數(shù)據(jù)庫(kù)的選項(xiàng)(集成安全性或特定的 ID 和密碼),并在需要時(shí)輸入一個(gè)用戶名和密碼。
11.單擊“選擇或輸入數(shù)據(jù)庫(kù)名”,然后輸入“Northwind”。
12.單擊“測(cè)試連接”,并在確定該連接生效后單擊“確定”。
隨即會(huì)顯示“配置數(shù)據(jù)源 - DataSourceName>”向?qū)В渲刑畛淞诉B接信息。
……
就是第12步單擊“測(cè)試連接”出了問(wèn)題,提示錯(cuò)誤:
在建立與服務(wù)器的連接時(shí)出錯(cuò)。在連接到 SQL Server 2005 時(shí),在默認(rèn)的設(shè)置下 SQL Server 不允許進(jìn)行遠(yuǎn)程連接可能會(huì)導(dǎo)致此失敗。 (provider: 命名管道提供程序, error: 40 - 無(wú)法打開(kāi)到 SQL Server 的連接)
這個(gè)問(wèn)題以前也遇到過(guò),解決了,可是不知道為什么又出來(lái)。解決方法如下:
1.服務(wù)器如果開(kāi)了防火墻,把它關(guān)閉
2. 開(kāi)啟sql2005遠(yuǎn)程連接功能,開(kāi)啟辦法如下,
配置工具->sql server外圍應(yīng)用配置器->服務(wù)和連接的外圍應(yīng)用配置器->打開(kāi)MSSQLSERVER節(jié)點(diǎn)下的Database Engine 節(jié)點(diǎn),先擇"遠(yuǎn)程連接",接下建議選擇"同時(shí)使用TCP/IP和named pipes",確定后,重啟數(shù)據(jù)庫(kù)服務(wù)就可以了.
3.登陸設(shè)置改為,Sql server and windows Authentication方式同時(shí)選中,具體設(shè)置如下:
Management Studio管理器->windows Authentication(第一次用windows方式進(jìn)去),->對(duì)象資源管理器中選擇你的數(shù)據(jù)服務(wù)器--右鍵>屬性>security>Sql server and windows Authentication方式同時(shí)選中.
4.設(shè)置一個(gè)Sql server方式的用戶名和密碼,具體設(shè)置如下:
Management Studio管理器->windows Authentication>new query>sp_password null,'sa123456','sa'
這樣就設(shè)置了一個(gè)用戶名為sa ,密碼為:sa123456的用戶,下次在登陸時(shí),可以用Sql server方式,
用戶名為sa ,密碼為:sa123456的用戶進(jìn)數(shù)據(jù)庫(kù)了.
5.做完上面三步后,這樣寫(xiě)連接字符串就可以順利進(jìn)入數(shù)據(jù)庫(kù)了,
(server=.\\sqlexpress;uid=sa;pwd=sa123456;database=master");
后來(lái)用這個(gè)管理器才發(fā)現(xiàn),正確的Server名是這樣的,機(jī)器名\SQLEXPRESS而不是LOCALHOST,127.0.0.1,FANCYBOY(機(jī)器名)比如我的是這樣的
Server:FANCYBOY\SQLEXPRESS
原來(lái)的是:Server=localhost;database=user;uid=sa;pwd=''
現(xiàn)在的是:Server=.\\SQLEXPRESS;database=user;uid=sa;pwd='' //我就是這出現(xiàn)了問(wèn)題
還找到了另外一個(gè)可能的解決方法:
1.打開(kāi)IIS屬性-》虛擬目錄屬性-》選Net 2.0-》點(diǎn)‘編輯配置'-》刪除所有連接SQlexpress的項(xiàng)
當(dāng)然,最好連全局的配置也刪除,
2.打開(kāi)IIS屬性-》站點(diǎn)屬性-》選Net 2.0-》點(diǎn)‘編輯全局配置'
-》刪除所有連接SQlexpress的項(xiàng).
經(jīng)過(guò)以上設(shè)置,還是有錯(cuò)誤:
SQL SERVER 2005使用sa 登錄失敗-提示該用戶與可信 SQL Server 連接無(wú)關(guān)聯(lián)
錯(cuò)誤提示:
sa 登錄失敗,提示該用戶與可信 SQL Server 連接無(wú)關(guān)聯(lián)
解決方法:
1. 打開(kāi)SQL Server Management Studio Express,右鍵點(diǎn)擊服務(wù)器,選擇Properties(屬性),在彈出窗口中點(diǎn)擊Security(安全)切換到安全面板,將server authentication服務(wù)器認(rèn)證從windows authentication mode(windows用戶認(rèn)證模式)修改為Sql Server and Windows Authentication mode(Sql server和windows認(rèn)證模式),ok。
2. 打開(kāi)security(安全性) -- logins(登錄名) ,右鍵選中sa,選擇properties(屬性),點(diǎn)擊Status(狀態(tài))切換到狀態(tài)面板,將Login(登錄)設(shè)置為Enabled(啟用)。
(注意:弄完之后要重啟數(shù)據(jù)庫(kù)??!)
通過(guò)以上設(shè)置即可搞定。如果還不行請(qǐng)檢查其他原因,譬如防火墻等因素