每次連接配接資料庫的時候總是會出各種各樣的問題,都見怪不怪了。但是這個問題還是第一次遇到呢,起初還有新鮮勁,但是這個問題搗鼓了一個下午+晚上1小時。就開始變得糾結了。為了紀念一下這個難的的問題,還是寫篇部落格吧。
問題初期:新鮮勁來了, 好奇的是wmi是什麼東西啊?
既然提示無法連接配接到wmi提供程式,那就是服務沒開啟呗。先檢視wmi服務: 計算機—>管理—>輕按兩下服務—>找到wmi
第二,去網上找了相關的問題,大部分都是給出這三種解決方案:
1.權限問題:管理者(administrator)沒有 network service的權限,是以 wmi無法打開。
右擊“我的電腦”-->“管理”
在“本地使用者群組”内的administrators組上輕按兩下,出現添加屬性對話框。
單擊“添加”按鈕,出現添加使用者對話框
單擊“進階”按鈕,再單擊“搜尋”(或是“立即查找”)按鈕。注:此'nt authority\network service'使用者為系統内置帳戶,無法直接添加。
在“搜尋結果”内選擇“network service”使用者後,單擊“确定”
2.檢查一下 windows下的system32 中是否有framedyn.dll這個系統檔案,如果沒有到system32 下的wbem檔案中拷貝framedyn.dll到system32 目錄下。 我進到system32目錄找framedyn.dll檔案,果然沒有找到,再進入system32\wbem目錄,找framedyn.dll,拷貝到system32目下。
經查找,有該檔案!
3.在doc指令中輸入:mofcomp.exe "c:\program files\microsoft sql server\90\shared\sqlmgmproviderxpsp2up.mof"
但是運作之後,出現了下面的錯誤:
提示找不到檔案,在網上查找問題,都是這三種解決方案。搗鼓了一下午之後,感覺自己快要放棄的時候,這時候看到八期的師哥過來了,拉着他一起幫忙解決。同樣是查找相關的問題。
搗鼓了一段時間還是不行。此時已經能明确的确定引起這個問題的主要原因是sqlmgmproviderxpsp2up.mof 這個檔案。該檔案的作用主要是由于上一次sql安裝失敗之後,将存儲在該檔案之中,是以需要進行更新該檔案。
後來又發現有個小小的問題,就是有的解決方案給出的路徑是不一樣的。有的是:mofcomp.exe "c:\program files(x86)\microsoft sql server\90\shared\sqlmgmproviderxpsp2up.mof" 或者是 mofcomp.exe "c:\program files\microsoft sql server\100\shared\sqlmgmproviderxpsp2up.mof" 。
注意觀察他們的差別,這時候就知道肯定是路徑上的問題。但是這個檔案該去哪找呢?想查一下sqlmgmproviderxpsp2up.mof 這個檔案,但是網上都沒有介紹。 正當再次要放棄的時候,觀察sql server的目錄組織結構。
既然有人在90和100中找到了,那為什麼不到110 下面去找呢。最後在該檔案下找到了sqlmgmproviderxpsp2up.mof 這個檔案。
運作結果:
主要原因是路徑上的錯誤,sqlmgmproviderxpsp2up.mof 這個檔案的路徑,在每個系統上存放的路徑是不一樣的。
注意program files(x86)和program files的差別。
在64位系統的系統盤中會存在program files和program files(x86)兩個檔案夾。前者用來存放64位檔案,後者用來存放32位檔案。這兩個檔案夾的存在使得目前64為作業系統可相容32為程式,也可以說是為了相容32位程式,program files(x86)這個檔案夾才會存在。
是以,在遇到解決路徑上問題的時候一定要事先了解這些基本知識。同時在遇到問題的尋求解決方案的時候,一定不要一味的相信别人的,要慎思根據自己的實際情況來解決。
最新内容請見作者的github頁:http://qaseven.github.io/