sql拒絕訪問,提示“SQL Server不存在或訪問被拒絕”故障通常是最復雜的故障之一。那麼怎樣解決sql拒絕訪問的問題呢?造成sql拒絕訪問的原因較多。SQL Server名稱或IP地址拼寫有誤;服務器端網絡配置有誤以及客戶端網絡配置有誤等錯誤配置均會造成上述故障的發生。解決該問題時建議遵循以下步驟逐步進行:
1.檢查網絡物理連接
使用Ping命令測試服務器IP地址或服務器名稱,如果Ping服務器IP地址時失敗,說明物理連接有問題,這時要檢查硬件設備(如網卡、交換機、路由器等)。還有一種可能是由於客戶端和服務器之間安裝有防火牆軟件,防火牆可能會屏蔽對 Ping、Telnet 等請求的響應。在檢查連接問題時建議先把防火牆軟件暫時關閉,或者打開所有被封閉的端口。
如果Ping服務器IP地址成功而Ping服務器名稱失敗,則說明名字解析有問題。有時SQL服務器跟客戶端不屬於同一個網段,這時可能會無法直接使用服務器名稱來標識該服務器。不過借助HOSTS文件也能進行名字解析。用“記事本”程序打開HOSTS文件(該文件一般位於%SystemRoot%system32driversetc中),添加一條IP地址與服務器名稱的對應記錄(如10.115.223.188 hanjiangit)。
2.用Telnet命令檢查SQL Server服務器工作狀態。
執行命令“Telnet 服務器IP地址:1433”,如果命令執行成功則可以看到屏幕一閃之後光標在左上角不停閃動,這說明 SQL Server服務器工作正常,並且正在監聽1433端口的TCP/IP連接;如果命令返回“無法打開連接”的錯誤信息,則說明服務器沒有啟動SQL Server服務,也可能服務器未使用 TCP/IP,或者服務器沒有在SQL Server的默認端口1433上監聽。
3.在SQL Server服務器上檢查服務器端的網絡配置。
一般需要檢查是否啟用了命名管道、是否啟用了TCP/IP燈方面。該操作可以使用SQL Server自帶的“服務器網絡實用工具”來實現:
第1步,依次單擊“開始”→“所有程序”→Microsoft SQL Server→“服務器網絡實用工具”,打開“SQL Server網絡實用工具”對話框。從該對話框中可以看到服務器啟用了哪些協議,一般而言應該啟用命名管道及TCP/IP,如圖所示。
SQL Server網絡實用工具
第 2步,在“啟用的協議”列表框中選中TCP/IP選項並單擊“屬性”按鈕,打開hanjiangit-TCP/IP對話框。在該對話框中檢查SQL Server服務默認端口的設置,默認會使用1433端口。如果選取“隱藏服務器”復選框,則客戶端將無法通過枚舉服務器來看到這台SQL Server服務器,從而起到保護作用。如果檢查沒有問題單擊“確定”按鈕,如圖所示。
檢查TCP/IP屬性
第 3步,檢查完服務器端的網絡配置,接著要到客戶端檢查客戶端的網絡配置。在安裝了SQL Server客戶端的計算機中依次單擊“開始/所有程序/Microsoft SQL Server/客戶端網絡實用工具”,打開“SQL Server客戶端網絡實用工具”對話框。在該對話框中可以看到客戶端啟用了哪些協議,一般而言同樣需要啟用命名管道(Named Pipes)及TCP/IP,如圖所示。
SQL Server客戶端網絡實用工具
第4步,在“按順序啟用協議”列表中單擊選中TCP/IP選項,並單擊“屬性”按鈕。在打開的TCP/IP對話框中可以檢查客戶端默認連接端口的設置,該端口必須與服務器一致。如果沒有問題單擊“確定”按鈕,如圖所示。
檢查客戶端使用的端口
第 5步,在“SQL Server客戶端網絡實用工具”對話框中單擊“別名”選項卡,可以為服務器配置別名。服務器的別名是用於連接的名稱,連接參數中的服務器是真正的服務器名稱,兩者可以相同或不同。例如可以使用SQL Server來代替真正的服務器名稱hanjiangit,並使用網絡庫“Named Pipes(命名管道)”。確認服務器別名沒有問題,單擊“確定”按鈕,如圖所示。
配置SQL Server
通過對以上參數進行檢查並配置,基本可以排除本例所提到的故障。