sql 2000 無法連接遠程數據庫 sqlserver不存在或訪問被拒絕、不能打開到主機的連接,在端口1433:連接失敗等 解決方案


問題:

sql 2000 無法連接遠程數據庫 sqlserver不存在或訪問被拒絕

telnet 127.0.0.1 1433  
  提示:不能打開到主機的連接,在端口1433:連接失敗

解決方案:

登錄遠程SQL服務器

一看ping 服務器IP能否ping通。

 

這個實際上是看和遠程sql server 2000服務器的物理連接是否存在。如果不行,請檢查網絡,查看配置,當然得確保遠程sql server 2000服務器的IP拼寫正確。

 

二在Dos或命令行下輸入telnet 服務器IP 端口,看能否連通。

 

如telnet 202.114.100.100 1433

 

通常端口值是1433,因為1433是sql server 2000的對於Tcp/IP的默認偵聽端口。如果有問題,通常這一步會出問題。通常的提示是“……無法打開連接,連接失敗"。

 

如果這一步有問題,應該檢查以下選項。

 

1 檢查遠程服務器是否啟動了sql server 2000服務。如果沒有,則啟動。

 

2 檢查服務器端有沒啟用Tcp/IP協議,因為遠程連接(通過因特網)需要靠這個協議。檢查方法是,在服務器上打開 開始菜單->程序->Microsoft SQL Server->服務器網絡實用工具,看啟用的協議里是否有tcp/ip協議,如果沒有,則啟用它。

 

3 檢查服務器的tcp/ip端口是否配置為1433端口。仍然在服務器網絡實用工具里查看啟用協議里面的tcp/ip的屬性,確保默認端口為1433,並且隱藏服務器復選框沒有勾上。

 

事實上,如果默認端口被修改,也是可以的,但是在客戶端做telnet測試時,寫服務器端口號時必須與服務器配置的端口號保持一致。如果隱藏服務器復選框被勾選,則意味着客戶端無法通過枚舉服務器來看到這台服務器,起到了保護的作用,但不影響連接,但是Tcp/ip協議的默認端口將被隱式修改為2433,在客戶端連接時必須作相應的改變。

 

4 如果服務器端操作系統打過sp2補丁,則要對windows防火牆作一定的配置,要對它開放1433端口,通常在測試時可以直接關掉windows防火牆(其他的防火牆也關掉最好)。

 

5 檢查服務器是否在1433端口偵聽。如果服務器沒有在tcp連接的1433端口偵聽,則是連接不上的。檢查方法是在服務器的dos或命令行下面輸入

 

netstat -a -n 或者是netstat -an,在結果列表里看是否有類似 tcp 127.0.0.1 1433 listening 的項。如果沒有,則通常需要給sql server 2000打上至少sp3的補丁。其實在服務器端啟動查詢分析器,輸入 select @@version 執行后可以看到版本號,版本號在8.0.2039以下的都需要打補丁。

 

 

關於sql server2000 sp3補丁的問題總結

java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC]Error establishing socket.

at com.microsoft.jdbc.base.BaseExceptions.createException(Unknown Source)

at com.microsoft.jdbc.base.BaseExceptions.getException(Unknown Source)

at com.microsoft.jdbc.base.BaseExceptions.getException(Unknown Source)

at com.microsoft.jdbc.sqlserver.tds.TDSConnection.<init>(Unknown Source)

at com.microsoft.jdbc.sqlserver.SQLServerImplConnection.open(Unknown Source)

at com.microsoft.jdbc.base.BaseConnection.getNewImplConnection(Unknown Source)

at com.microsoft.jdbc.base.BaseConnection.open(Unknown Source)

at com.microsoft.jdbc.base.BaseDriver.connect(Unknown Source)

at java.sql.DriverManager.getConnection(Unknown Source)

at java.sql.DriverManager.getConnection(Unknown Source)

...........

出錯原因:沒有打sql server2000的sp3補丁

 

問題總結

 

A,看看1433端口是否打開:

 

在dos窗口輸入:netstat -a 回車,會列出本機用的端口列表,看看里面有沒有1433,如果沒有,說明沒有打開,打了sp3補丁就會打開該端口

 

檢查你的SQL有沒有打sp3補丁,檢查的方法是在查詢分析器中運行:

select @@version

如果出來的版本號是8.00.760以下,則表明你未安裝sp3的補丁,一般比較多的是8.00.194這是標准版的序列號碼,說明沒有打sp3補丁,如下:

 

Microsoft SQL Server 2000 - 8.00.194 (Intel X86) Aug 6 2000 00:57:48 Copyright (c) 1988-2000 Microsoft Corporation Personal Edition on Windows NT 5.1 (Build 2600: Service Pack 2)

 

號碼對應表:

 

其中的8.00.194 就是SQL Server的版本和補丁號。對應關系如下:

8.00.194 -------SQL Server 2000 RTM

8.00.384 -------(SP1)

8.00.534 -------(SP2)

8.00.760 -------(SP3)

這樣我們就能看到SQL Server的正確版本和補丁號了。

 

如果為8.00.194,說明沒有打補丁。

 

sp3 下載地址:

 

http://download.microsoft.com/download/d/d/e/dde427eb-0296-4eac-a 47c-d11a66b03816/chs_sql2ksp3.exe

 

拿迅雷下,快的很!

 

下下來以后,這是個自解包,解壓,到那個目錄里找到 setup.bat執行開始安裝.

 

B,下面看安裝時候的問題:

補丁安裝過程中常見問題

如果在安裝補丁的時候遇到如下類似錯誤:

1、安裝過程中出現“以前進行的程序創建了掛起的文件操作,運行安裝程序前,必須重新啟動”,請按照下面步驟解決:

a、重啟機器,再進行安裝,如果發現還有該錯誤,請按下面步驟

b、在開始->運行中輸入regedit

c、到HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager 位置

d、選擇文件->倒出,保存

e、在右邊窗口右擊PendingFileRenameOperations,選擇刪除,然后確認

f、重啟安裝,問題解決

如果還有同樣問題,請檢查其它注冊表中是否有該值存在,如有請刪掉。

2、在安裝SQL Server SP3,有時候會出現:無論用windows認證還是混和認證,都出現密碼錯誤的情況,這時查看臨時目錄下的sqlsp.out,會發現以下描述:

[TCP/IP Sockets]Specified SQL server not found.

[TCP/IP Sockets]ConnectionOpen (Connect()).

其實這是SQL Server SP3的一個小bug,在安裝sp3的時候,沒有監聽tcp/ip端口,可以按照以下步驟進行:

1、打開SQL server客戶器網絡實用工具和服務器網絡工具,確保啟用的協議中包含name pipe,並且位置在第一位.

2、確保[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSSQLServer\Client\ConnectTo]

"DSQUERY"="DBNETLIB".

如果沒有,請自己建立

3、停止mssql.

4、進行安裝.

這樣就可以進行正確安裝了。

 

 

如果以上都沒問題,這時你再做telnet 服務器ip 1433 測試,將會看到屏幕一閃之后光標在左上角不停閃動。恭喜你,你馬上可以開始在企業管理器或查詢分析器連接了。

 

三檢查客戶端設置

 

程序->Microsoft SQL Server -> 客戶端網絡使用工具。像在服務器網絡實用工具里一樣,確保客戶端tcp/ip協議啟用,並且默認端口為1433(或其他端口,與服務器端保持一致就行)。

 

四在企業管理器里或查詢那分析器連接測試

 

企業管理器->右鍵SQlserver組->新建sqlserver注冊->下一步->寫入遠程IP->下一步->選Sqlserver登陸->下一步->寫入登陸名與密碼(sa,password)->下一步->下一步->完成

 

查詢分析器->文件->連接->寫入遠程IP->寫入登錄名和密碼(sa,password)->確定

 

通常建議在查詢分析器里做,因為默認情況下,通過企業管理器注冊另外一台SQL Server的超時設置是4秒,而查詢分析器是15秒。

 

修改默認連接超時的方法:

 

企業管理器->工具->選項->在彈出的"SQL Server企業管理器屬性"窗口中,點擊"高級"選項卡->連接設置->在 登錄超時(秒) 后面的框里輸入一個較大的數字

 

查詢分析器->工具->選項->連接->在 登錄超時(秒) 后面的框里輸入一個較大的數字

 

通常就可以連通了,如果提示錯誤,則進入下一步。

 

五 錯誤產生的原因通常是由於SQL Server使用了"僅 Windows"的身份驗證方式,因此用戶無法使用SQL Server的登錄帳戶(如 sa )進行連接。解決方法如下所示:

 

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

 

2 展開"SQL Server組",鼠標右鍵點擊SQL Server服務器的名稱,選擇"屬性",再選擇"安全性"選項卡。

 

3 在"身份驗證"下,選擇"SQL Server和 Windows "。

 

4 重新啟動SQL Server服務。(在dos或命令行下面net stop mssqlserver停止服務,net start mssqlserver啟動服務,也是一種快捷的方法)。

 

附注:在連接本地服務器時,通常使用的是命名管道協議(在服務器網絡實用工具里可以看到啟用的協議有這個),默認端口是445,因此在本地能連通是不能說明什么問題的,連接遠程服務器是完全不同的協議。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM