架站時,SQL可能發生的問題之溫馨小提醒。
今天接到一台客戶寄過來的主機,希望我能幫他把網站架設好再寄回去 ...
信中說到她們的工程師已經將系統設定好,但網站無法運作,有重灌過,希望我能幫忙檢查,真想唸一下那位工程師XD,不過當下就想到那幾個老梗的問題檢查一下便解決了。
先離題一下,初步當然不會想說是SQL的問題囉,大概是IIS沒有設好吧?!先檢查.net framework 版本,再來是標頭,應用程式集區,ASP.NET版本,瀏覽目錄..等逐一去檢查,發現沒什麼錯誤,而且是IIS 6,問題不大。
回到SQL上,第一個小提醒是先看程式裡的ConnectionString怎麼寫的,是否連錯資料庫,或是採用掛載的方式運行,有沒有重複的資料庫名稱等,當然這些你有開偵錯頁面的話其實都會看到,接下來,用Windows驗證方式連連看Management Studio,看能不能登入,可以當然好談,就檢查登入帳號的權限,包含是不是db_owner等都看一下,並檢查資料庫有沒有正確的附加上去,名稱是否正確,接者使用SQL驗證的方式登入,可以就表示帳號沒問題,不行就再回去檢查帳號,或者在連接字串中改另一個帳號試試看,回到原點,如果Management Studio登不進去,則檢查所選擇的Server Name是否正確,這點相當重要!!以前我還是新手的時候遇到登不進去只會一直重灌,後來才發現有伺服器名稱這種東西,所以重灌後如果登不進去請先檢查伺服器名稱,可是未完整移除或是版本升級的關係,讓SQL去預設舊的名稱,選擇方式如圖:
今天這個案件的問題點就出在這,更改後即可,但我們繼續討論下去,如果確認名稱對了,還是登入進去或是網站依舊無法開啟,請開啟SQL server 組態管理員,開啟後先檢查SQL server有沒有在執行(←廢話),接者看通訊協定的Shard Memory 具名管道 TCP/IP這三個是否"已啟用(Enable)",用戶端亦同,更改後重新啟動SQL後再試試看網站是否可以運行了,上述幾點都不行,就看錯誤碼GOOGLE一下找問題,或回想是否前一版本的具名個體尚在?參考移除守則 :
2000 :http://support.microsoft.com/kb/290991/zh-tw
2005 :http://support.microsoft.com/kb/909967/zh-tw
以上就是我的溫馨小提醒囉,其實都是很簡單很老梗的問題,但有時就是忘了去檢查,往往浪費了不少時間。
先說好不打臉的啊!只是提供個人實務上的經驗作參考,大家討論討論勿鞭啊!
|