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

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(DriverManager.java:525)
 at java.sql.DriverManager.getConnection(DriverManager.java:171)
 at s2jsp.sg.ch03.NewsFirstTitleDB1.main(NewsFirstTitleDB1.java:16)
我用的是XP server pack 3系統
如果你在測試連接SQL Server 2000 JDBC連接時出現錯誤Error establishing socket.請參考如下:
用 CMD 命令NETSTAT查1433(這是默認的端口,可能被佔用,你可以重新設一個新的端口)的端口可是居然沒有沒有打開,先看看你的服務器有沒有打開,如果都大開了那就說明你沒有裝SQL的sp3或sp4的補丁. 

還有一個方法看你是不是要打補丁,那就是看看你的版本號: 
可以用如下的方式查看MSSQL的版本: 
打開企業管理器-〉工具-〉SQL查詢分析器-〉幫助-〉關於 
查看MSSQL的詳細版本號 
如果 是 8.00.194 就是還沒打補丁 
8.00.760 就是SP3 
8.00.2039 就是SP4 
如果你的版本號是對的,但NETSTAT查1433沒有,那可能你的1433端口被佔了,換一個端口應該就可以了. 
換端口的方法是:1. 打開企業管理器,依次在控制檯根目錄 ->Microsoft SQL Servers->SQL Server 組,列出一部分數據庫服務器。 
2. 右擊我們要連接的數據庫服務器,選擇屬性,在常規選項卡點擊網絡配置彈出新窗口。 
3. 在啓用的協議區域我們選擇 TCP/IP ,點擊屬性按鈕,彈出新窗口。在這個窗口有網絡協議默認值設置,一般默認端口是:1433。 

另有一篇網上的方法,供參考:

如運行程序時出現 "Error establishing socket" 錯誤,則應進行如下調試:

1 檢查SQL SERVER 是否允許遠程訪問.具體步驟:

1)打開"企業管理器",打開控制檯根目錄>SQL Server 組>數據庫
2)在相應"數據庫"上單擊右鍵,選擇"屬性"
3)選擇"連接"選項卡,檢查"遠程服務器連接"下,RPC服務是否選擇.

2 使用telnet IP地址 1433,系統是否提示連接出錯,如系統提示出錯
檢查是否防火牆屏蔽了SQL SERVER 或 java IDE 的網絡訪問端口
如果是,關閉防火牆,重新啓動SQL SERVER和java IDE,進行測試,
如果系統仍提示上述錯誤,嘗試下列步驟

3 檢查SQL SERVER 端口號及是否啓用了TCP/IP協議,具體步驟:

1)打開"企業管理器",打開控制檯根目錄>SQL Server 組>數據庫
2)在相應"數據庫"上單擊右鍵,選擇"屬性"
3)選擇"常規"選項卡,點擊"網絡配置",如啓用的協議中無"TCP/IP協議"將其加入
4)選擇"TCP/IP協議",點擊"屬性",檢查其端口號是否爲1433
5)如端口號爲1433將其修改爲其它端口號,修改jdbc連接語句,將端口號同樣改爲新啓用的端口號,如jdbc:microsoft:sqlserver://server_name:1400(假設新端口號爲 1400)

以下的方法你每種的去試試:
#檢查一下sql server的connection有沒有full.

#如果是認證的問題.
可到sql enterprice manager->指定server->內容->安全性.
把驗證改爲 SQL server 及 windows.

#點選屬性檢查一下port是否正確.

#執行%MSSQL_HOME%\80\Tools\Binn\SVRNETCN.exe
把TCP/IP啓用.

#關掉防火牆.

#把SQL server update到sp3:
http://www.microsoft.com/sql/downloads/2000/sp3.asp

經我驗證,一般升級到sp3就好用了!
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章