[Microsoft][SQLServer 2000 Driver for JDBC]Error establishing socket
今天到實驗室運行了一下以前作的合同管理的系統,以前運行正常,奇怪的是今天運行出錯了。錯誤提示如標題所示。看來很可能是驅動程序出錯了導致連接不上數據庫,因此我檢查是否啓動數據庫服務器,服務器已經啓動,看來是我用的jdbc的驅動出錯了。驅動程序出錯總是一件很麻煩的事情。爲了保險起見我還是編寫了一個用jdbcodbc驅動的小程序來鏈接數據庫,結果是運行正常的。看來是jdbc for sql server2000出錯了。這時我想起實驗室的一位仁兄用我的機器在另外一個帳號下面又安裝了一個sql server2000的實例很可能那就是原因的所在,新裝的實例使我以前對sql server2000進行sp4的升級失效導致驅動程序也不能用(jdbc的驅動程序要求sql server2000版本要sp3以上)。於是我重新對sql server升級到sp4問題解決了。
下面是我在網上找到的一些相同現象的解決方法:問題現象雖然相同但是原因可能不同方法也各異。
MS SQL2000 (Error establishing socket)錯誤的解決辦法-SQL請選用混和安裝模式
作者:YuLimin
* Error: get DB connection error. Ex. msg: java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC]Error establishing socket.
server 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)
---------------------------------------------------------------
無法建立數據庫連接,
確定網絡沒有問題
SQL有開着,
把SQL打到SP3的補丁
SQL Server2000 SP4要注意,解壓之後看到setup.bat這個文件,打開這個文件就開始安裝SP4補丁。記得安裝後,SQL 服務器是停止了,需要重新啓動!安裝之後,啓動SQL服務器,打開查詢分析器,輸入select @@version,按F5執行,如果出現Microsoft SQL Server 2000 - 8.00.2039 (Intel X86) May 3 2005 23:18:38 Copyright (c) 1988-2003 Microsoft Corporation Personal Edition on Windows NT 5.1 (Build 2600: Service Pack 2)則說明SQL Server2000的補丁SP4安裝成功
驅動也要對應SP3的.
---------------------------------------------------------------
1、下載Microsoft SQL Server 2000 Service Pack 3a並安裝,SQL請選用混和安裝模式!!!
http://www.microsoft.com/downloads/details.aspx?FamilyId=90DCD52C-0488-4E46-AFBF-ACACE5369FA3&displaylang=zh-cn
2、下載SQL Server 2000 Driver for JDBC Service Pack 3
http://www.microsoft.com/downloads/details.aspx?FamilyId=07287B11-0502-461A-B138-2AA54BFDC03A&displaylang=en
3、運行時關閉防火牆
我的操作系統是XP,前幾天升級到sp2,發現jdbc連接不了sqlserver,報錯不能連接,後來我下載了sqlserver sp3,安裝的時候總是提示sa密碼不正確,後來我登陸微軟網站,找到關於sqlserver sp3的幫助文檔,發現原來我電腦中的用戶環境變量沒有設置TEMP和TMP,設置後,update sqlserver sp3成功,然後jdbc連接也正常。
希望這文章對一些同道中人有所幫助。
JDBC SQLSERVER"Error establishing socket"
jdbc配置語句爲: jdbc:microsoft:sqlserver://server_name: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%80ToolsBinnSVRNETCN.exe
把TCP/IP啓用.
#關掉防火牆.
#把SQL server update到sp3:
http://www.microsoft.com/sql/downloads/2000/sp3.asp
經我驗證,一般升級到sp3就好用了