SQL server不存在或拒絕訪問故障的排除
1 問題的提出
某企業正常使用的一套C/S模式進銷存系統,新增加的一臺客戶機在連接數據庫服務器(安裝SQL Server 2000)時出現故障提示—“[DBNETLIB][ConnectionOpen(connect()).]SQL Server 不存在或拒絕訪問”,系統無法登錄,其它的客戶機工作正常。
2 解決過程及思路
對于這種故障提示,一般資料上對此故障介紹的解決辦法是檢查客戶機上防火墻和1433端口的設置。出現故障的客戶機上安裝的是卡巴斯基6.0互聯網安全套裝,在卡巴斯基的“網絡設置”中添加1433端口后,出現的故障提示變為“一般性網絡錯誤 (recv())”,造成后面這種故障提示信息的原因很多,不易確定。為此,比較正常工作的客戶機和出現故障的客戶機的SQL SERVER客戶端設置,發現工作正常的客戶機使用“Named pipes”為優先使用的協議,使用服務器的名稱來連接數據庫服務器,出現故障的客戶機使用“tcp/ip”為優先啟用的協議,使用服務器的IP地址來連接數據庫服務器,默認端口為1433,在出現故障的客戶機上把 “Named pipes”設置為優先啟用的協議,使用服務器的名稱來連接數據庫服務器則連接正常,可以正常運行。由此確定故障與TCP/IP協議有關,在服務器 (Windows 2000 SERVER SP4+SQL Server 2000,IP地址為10.140.90.249)上運行netstat –an命令,結果如下:
Active Connections Proto Local Address Foreign Address State …… TCP 10.140.90.249:80 10.140.90.52:2519 TIME_WAIT TCP 10.140.90.249:80 10.140.90.52:2523 TIME_WAIT TCP 10.140.90.249:80 10.140.90.52:2525 TIME_WAIT TCP 10.140.90.249:80 10.140.90.52:2527 TIME_WAIT TCP 10.140.90.249:80 10.140.90.52:2529 ESTABLISHED TCP 10.140.90.249:80 10.140.90.52:2531 ESTABLISHED TCP 10.140.90.249:139 0.0.0.0:0 LISTENING TCP 10.140.90.249:1051 10.140.90.249:2161 ESTABLISHED TCP 10.140.90.249:2161 10.140.90.249:1051 ESTABLISHED …… |
從上述的內容可以看出,服務器上TCP/IP協議中沒有打開監聽1433端口,在網上搜索關于SQL Server和1433端口有關信息,發現SQL Server 7.0是默認打開1433端口,而SQL Server 2000在SP4以前是默認關閉1433端口的,詢問管理員,服務器上曾安裝過SQL Server 2000的SP4補丁,由于SQL Server 2000的版本號不顯示在“關于”中,于是進入“查詢分析器”檢查SQL Server 2000的版本號,在“查詢分析器”中執行:
SELECT @@VERSION
返回值為“8.00.194 RTM”,該值為SQL Server 2000的原始版本,進一步詢問管理員,得知在安裝SP4時沒有停止服務器上的SQL Server服務,而SQL Server 2000 SP4明確要求安裝時要停止服務器上的SQL Server服務和所有客戶端程序后才能安裝,由此判斷服務器上的SQL Server 2000 SP4沒有安裝成功。SQL Server 2000版本和版本號關系可以在網上查到。
重新在服務器上安裝SQL Server 2000 SP4,出現提示“以前進行的程序安裝創建了掛起的文件操作。運行程序之前,必須重新啟動計算機。”表明以前的SP4沒有安裝成功,重新啟動服務器,這個提示繼續出現,啟動注冊表編輯器,來到HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control \Session Manager分支,刪除PendingFileRenameOperations項目,然后重新安裝SQL Server 2000 SP4成功。再在服務器上執行netstat –an命令,1433端口赫然在列,處于“LISTENING”狀態,把出現故障的客戶機設置為TCP/IP連接方式,啟動程序,連接順利完成,錯誤信息不再出現。
3 結束語
現在的軟件系統越來越復雜,牽扯的系統也越來越多,排除故障時不能被故障的表面現象所迷惑,要順藤摸瓜,逐步分析排除,到有關軟件系統的論壇和官方網站了解相關產品的信息,尤其是補丁信息,在排除故障時才能事半功倍,少走彎路。
這種故障在單機狀態時也會出現,一般是SQL SERVER的客戶端TCP/IP設置為優先啟用的協議,使用IP地址連接SQL SERVER,網線物理連接有問題或者IP地址設置有問題時。
關鍵字:SQL server、服務器、網絡
新文章:
- CentOS7下圖形配置網絡的方法
- CentOS 7如何添加刪除用戶
- 如何解決centos7雙系統后丟失windows啟動項
- CentOS單網卡如何批量添加不同IP段
- CentOS下iconv命令的介紹
- Centos7 SSH密鑰登陸及密碼密鑰雙重驗證詳解
- CentOS 7.1添加刪除用戶的方法
- CentOS查找/掃描局域網打印機IP講解
- CentOS7使用hostapd實現無AP模式的詳解
- su命令不能切換root的解決方法
- 解決VMware下CentOS7網絡重啟出錯
- 解決Centos7雙系統后丟失windows啟動項
- CentOS下如何避免文件覆蓋
- CentOS7和CentOS6系統有什么不同呢
- Centos 6.6默認iptable規則詳解