24h購物| | PChome| 登入
2009-08-24 16:09:32| 人氣1,128| 回應0 | 上一篇 | 下一篇

SQL Server連接中的最常見錯誤

推薦 0 收藏 0 轉貼0 訂閱站台

資料來源 : CSDN

."SQL   Server   不存在或訪問被拒絕"  

   

  這個是最複雜的,錯誤發生的原因比較多,需要檢查的方面也比較多.  

   

  一般說來,有以下幾種可能性:  

   

  1,SQL   Server名稱或IP地址拼寫有誤  

  2,伺服器端網路配置有誤  

  3,用戶端網路配置有誤  

   

  要解決這個問題,我們一般要遵循以下的步驟來一步步找出導致錯誤的原因.  

   

   

  =============   首先,檢查網路物理連接   =============  

  ping   <伺服器IP地址/伺服器名稱>  

   

  如果   ping   <伺服器IP位址>   不成功,說明物理連接有問題,這時候要檢查硬體設備,如網卡,HUB,路由器等.  

  還有一種可能是由於用戶端和伺服器之間安裝有防火牆軟體造成的,比如   ISA   Server.防火牆軟體可能會遮罩對   ping,telnet   等的回應  

  因此在檢查連接問題的時候,我們要先把防火牆軟體暫時關閉,或者打開所有被封閉的埠.  

   

  如果ping   <伺服器IP地址>   成功而,ping   <伺服器名稱>   失敗  

  則說明名字解析有問題,這時候要檢查   DNS   服務是否正常.  

  有時候用戶端和伺服器不在同一個局域網裏面,這時候很可能無法直接使用伺服器名稱來標識該伺服器,這時候我們可以使用HOSTS檔來進行名字解析,  

  具體的方法是:  

   

  1.使用記事本打開HOSTS檔(一般情況下位於C:WINNTsystem32driversetc.  

  添加一條IP地址與伺服器名稱的對應記錄,:  

  172.168.10.24   myserver  

   

  2.或在   SQL   Server   的用戶端網路實用工具裏面進行配置,後面會有詳細說明.  

   

   

  =============   其次,使用   telnet   命令檢查SQL   Server伺服器工作狀態   =============  

  telnet   <伺服器IP地址>   1433  

   

  如果命令執行成功,可以看到螢幕一閃之後游標在左上角不停閃動,這說明   SQL   Server   伺服器工作正常,並且正在監聽1433埠的   TCP/IP   連接  

  如果命令返回"無法打開連接"的錯誤資訊,則說明伺服器端沒有啟動   SQL   Server   服務,  

  也可能伺服器端沒啟用   TCP/IP   協議,或者伺服器端沒有在   SQL   Server   默認的埠1433上監聽.  

   

   

  =============接著,我們要到伺服器上檢查伺服器端的網路配置,檢查是否啟用了具名管道.是否啟用了   TCP/IP   協議等等   =============  

  可以利用   SQL   Server   自帶的伺服器網路使用工具來進行檢查.  

   

  點擊:程式   --   Microsoft   SQL   Server   --   伺服器網路使用工具  

   

  打開該工具後,"常規"中可以看到伺服器啟用了哪些協議.  

  一般而言,我們啟用具名管道以及   TCP/IP   協議.  

  點中   TCP/IP   協定,選擇"屬性",我們可以來檢查   SQK   Server   服務默認埠的設置  

  一般而言,我們使用   SQL   Server   默認的1433.如果選中"隱藏伺服器",則意味著用戶端無法通過枚舉伺服器來看到這台伺服器,起到了保護的作用,但不影響連接.  

   

   

  =============   接下來我們要到用戶端檢查用戶端的網路配置   =============  

  我們同樣可以利用   SQL   Server   自帶的用戶端網路使用工具來進行檢查,  

  所不同的是這次是在用戶端來運行這個工具.  

   

  點擊:程式   --   Microsoft   SQL   Server   --   用戶端網路使用工具  

   

  打開該工具後,"常規"項中,可以看到用戶端啟用了哪些協議.  

  一般而言,我們同樣需要啟用具名管道以及   TCP/IP   協定.  

  點擊   TCP/IP   協定,選擇"屬性",可以檢查用戶端默認連接埠的設置,該埠必須與伺服器一致.  

   

  單擊"別名"選項卡,還可以為伺服器配置別名.伺服器的別名是用來連接的名稱,  

  連接參數中的伺服器是真正的伺服器名稱,兩者可以相同或不同.別名的設置與使用HOSTS檔有相似之處.  

   

   

  通過以上幾個方面的檢查,基本上可以排除第一種錯誤.  

   

   

  -----------------------------------------------------------------------------  

   

  ."無法連接到伺服器,用戶xxx登陸失敗"  

   

  該錯誤產生的原因是由於SQL   Server使用了"   Windows"的身份驗證方式,  

  因此用戶無法使用SQL   Server的登錄帳戶(如   sa   )進行連接.解決方法如下所示:  

   

  1.在伺服器端使用企業管理器,並且選擇"使用   Windows   身份驗證"連接上   SQL   Server  

  2.展開"SQL   Server",滑鼠右鍵點擊SQL   Server伺服器的名稱,選擇"屬性",再選擇"安全性"選項卡  

  3."身份驗證",選擇"SQL   Server   Windows   ".  

  4.重新啟動SQL   Server服務.  

   

  在以上解決方法中,如果在第   1   步中使用"使用   Windows   身份驗證"連接   SQL   Server   失敗,  

  那就通過修改註冊表來解決此問題:  

   

  1.點擊"開始"-"運行",輸入regedit,回車進入註冊表編輯器  

  2.依次展開註冊表項,流覽到以下註冊表鍵:  

  [HKEY_LOCAL_MACHINESOFTWAREMicrosoftMSSQLServerMSSQLServer]  

  3.在螢幕右方找到名稱"LoginMode",雙擊編輯雙位元組值  

  4.將原值從1改為2,點擊"確定"  

  5.關閉註冊表編輯器  

  6.重新啟動SQL   Server服務.  

   

  此時,用戶可以成功地使用sa在企業管理器中新建SQL   Server註冊,  

  但是仍然無法使用Windows身份驗證模式來連接SQL   Server.  

  這是因為在   SQL   Server   中有兩個缺省的登錄帳戶:  

  BUILTINAdministrators  

  <機器名>Administrator   被刪除.  

  要恢復這兩個帳戶,可以使用以下的方法:  

   

  1.打開企業管理器,展開伺服器組,然後展開伺服器  

  2.展開"安全性",右擊"登錄",然後單擊"新建登錄"  

  3."名稱"框中,輸入   BUILTINAdministrators  

  4."伺服器角色"選項卡中,選擇"System   Administrators"    

  5.點擊"確定"退出  

  6.使用同樣方法添加   <機器名>Administrator   登錄.  

   

  說明:  

   

  以下註冊表鍵:  

  HKEY_LOCAL_MACHINESOFTWAREMicrosoftMSSQLServerMSSQLServerLoginMode  

  的值決定了SQL   Server將採取何種身份驗證模式.  

  1.表示使用"Windows   身份驗證"模式  

  2.表示使用混合模式(Windows   身份驗證和   SQL   Server   身份驗證).  

   

   

  -----------------------------------------------------------------------------  

   

  .提示連接超時  

   

  如果遇到第三個錯誤,一般而言表示用戶端已經找到了這台伺服器,並且可以進行連接,  

  不過是由於連接的時間大於允許的時間而導致出錯.  

  這種情況一般會發生在當用戶在Internet上運行企業管理器來註冊另外一台同樣在Internet上的伺服器,  

  並且是慢速連接時,有可能會導致以上的超時錯誤.有些情況下,由於局域網的網路問題,也會導致這樣的錯誤.  

   

  要解決這樣的錯誤,可以修改用戶端的連接超時設置.  

  默認情況下,通過企業管理器註冊另外一台SQL   Server的超時設置是   4   ,  

  而查詢分析器是   15   秒(這也是為什麼在企業管理器裏發生錯誤的可能性比較大的原因).  

   

  具體步驟為:  

  企業管理器中的設置:  

  1.在企業管理器中,選擇功能表上的"工具",再選擇"選項"  

  2.在彈出的"SQL   Server企業管理器屬性"視窗中,點擊"高級"選項卡  

  3."連接設置"下的"登錄超時(秒)"右邊的框中輸入一個比較大的數字,   20.  

    

  查詢分析器中的設置:  

  工具   --   選項   --   連接   --   將登錄超時設置為一個較大的數字  

台長: nut
人氣(1,128) | 回應(0)| 推薦 (0)| 收藏 (0)| 轉寄
全站分類: 不分類 | 個人分類: 技術 |
此分類下一篇:加快 Visual Studio 執行速度與提升工作效率 (除錯指令)
此分類上一篇:將網頁輸出至Excel

是 (若未登入"個人新聞台帳號"則看不到回覆唷!)
* 請輸入識別碼:
請輸入圖片中算式的結果(可能為0) 
(有*為必填)
TOP
詳全文