小技巧:查看端口。可在cmd里輸入netstat -an 命令!
,用MyEclipse連接SQL Server2000出錯(cuò)!錯(cuò)誤為Error establishing socket!
首先,需要下載SQL_Serve20000的sp3補(bǔ)丁,下載安裝后會(huì)發(fā)現(xiàn)1433端口已經(jīng)打開了,再執(zhí)行程序。但我沒有下載SQL_Serve20000的sp3補(bǔ)丁,而是下載了SQL_Serve20000的sp4補(bǔ)丁,順便再下載了SQL Server 2000 Driver for JDBC Service Pack 3 http://download.microsoft.com/download/4/1/d/41d3e9c0-64d1-451e-947b-7a4cba273b2d/setup.exe ,在下載先安裝SQL Server 2000 Driver for JDBC Service Pack 3,再安裝SQL_Serve20000的sp4補(bǔ)丁!就OK啦!
原因是與socket建立連接錯(cuò)誤
可能是沒啟動(dòng)SQL Server2000服務(wù)器
你要連接的數(shù)據(jù)庫的服務(wù)器沒有啟動(dòng)
或者是需要SQL Server2000升級包,可以肯定出現(xiàn)這個(gè)錯(cuò)誤很大概率是沒有安裝SQL Server升級包
由于微軟公司關(guān)于一個(gè)安全性問題的考慮,讓個(gè)人版的sql server 不監(jiān)聽1433端口.故在通過驅(qū)動(dòng)連接數(shù)據(jù)庫的時(shí)候會(huì)出現(xiàn)該Error establishing socket錯(cuò)誤,所以如果通過jdbc連接sql server 就必須給數(shù)據(jù)庫打補(bǔ)丁,補(bǔ)丁包下下來是exe文件,執(zhí)行它,隨便選個(gè)文件夾運(yùn)行,然后再打開該文件夾,執(zhí)行里面的setup.bat,這樣你的數(shù)據(jù)庫就打上了補(bǔ)丁了,并且1433端口就監(jiān)聽了,然后你在執(zhí)行你的連接文件,就可以了(第一次的exe是解壓,解壓完再執(zhí)行setup.bat才是安裝)
有的時(shí)候還會(huì)出現(xiàn)一個(gè)問題說是什么sa用戶沒有建立可信任的連接,好象是這么個(gè)意思我記得不是很清楚了,這是因?yàn)槟惆惭b數(shù)據(jù)庫的時(shí)候選用的是windows驗(yàn)證,應(yīng)該選用混合模式,你打開企業(yè)管理器,選操作,點(diǎn)屬性,在安全性中選擇sql server 和windows這個(gè)選項(xiàng),點(diǎn)確定,然后重啟sqlserver和你的web服務(wù)器,在運(yùn)行你的連接文件應(yīng)該就可以了,
就解決啦!
錯(cuò)誤提示如標(biāo)題所示。看來很可能是驅(qū)動(dòng)程序出錯(cuò)了導(dǎo)致連接不上數(shù)據(jù)庫,因此我檢查是否啟動(dòng)數(shù)據(jù)庫服務(wù)器,服務(wù)器已經(jīng)啟動(dòng),看來是我用的jdbc的驅(qū)動(dòng)出錯(cuò)了。驅(qū)動(dòng)程序出錯(cuò)總是一件很麻煩的事情。為了保險(xiǎn)起見我還是編寫了一個(gè)用jdbcodbc驅(qū)動(dòng)的小程序來鏈接數(shù)據(jù)庫,結(jié)果是運(yùn)行正常的。看來是jdbc for sql server2000出錯(cuò)了。這時(shí)我想起實(shí)驗(yàn)室的一位仁兄用我的機(jī)器在另外一個(gè)帳號(hào)下面又安裝了一個(gè)sql server2000的實(shí)例很可能那就是原因的所在,新裝的實(shí)例使我以前對sql server2000進(jìn)行sp4的升級失效導(dǎo)致驅(qū)動(dòng)程序也不能用(jdbc的驅(qū)動(dòng)程序要求sql server2000版本要sp3以上)。于是我重新對sql server升級到sp4問題解決了。
下面是我在網(wǎng)上找到的一些相同現(xiàn)象的解決方法:問題現(xiàn)象雖然相同但是原因可能不同方法也各異。
MS SQL2000 (Error establishing socket)錯(cuò)誤的解決辦法-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)
---------------------------------------------------------------
無法建立數(shù)據(jù)庫連接,
確定網(wǎng)絡(luò)沒有問題
SQL有開著,
把SQL打到SP3的補(bǔ)丁
SQL Server2000 SP4要注意,解壓之后看到setup.bat這個(gè)文件,打開這個(gè)文件就開始安裝SP4補(bǔ)丁。記得安裝后,SQL 服務(wù)器是停止了,需要重新啟動(dòng)!安裝之后,啟動(dòng)SQL服務(wù)器,打開查詢分析器,輸入select @@version,按F5執(zhí)行,如果出現(xiàn)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的補(bǔ)丁SP4安裝成功
驅(qū)動(dòng)也要對應(yīng)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、運(yùn)行時(shí)關(guān)閉防火墻
我的操作系統(tǒng)是XP,前幾天升級到sp2,發(fā)現(xiàn)jdbc連接不了sqlserver,報(bào)錯(cuò)不能連接,后來我下載了sqlserver sp3,安裝的時(shí)候總是提示sa密碼不正確,后來我登陸微軟網(wǎng)站,找到關(guān)于sqlserver sp3的幫助文檔,發(fā)現(xiàn)原來我電腦中的用戶環(huán)境變量沒有設(shè)置TEMP和TMP,設(shè)置后,update sqlserver sp3成功,然后jdbc連接也正常。
希望這文章對一些同道中人有所幫助。
JDBC SQLSERVER"Error establishing socket"
jdbc配置語句為: jdbc:microsoft:sqlserver://server_name:1433
如運(yùn)行程序時(shí)出現(xiàn) "Error establishing socket" 錯(cuò)誤,則應(yīng)進(jìn)行如下調(diào)試:
1 檢查SQL SERVER 是否允許遠(yuǎn)程訪問.具體步驟:
1)打開"企業(yè)管理器",打開控制臺(tái)根目錄>SQL Server 組>數(shù)據(jù)庫
2)在相應(yīng)"數(shù)據(jù)庫"上單擊右鍵,選擇"屬性"
3)選擇"連接"選項(xiàng)卡,檢查"遠(yuǎn)程服務(wù)器連接"下,RPC服務(wù)是否選擇.
2 使用telnet IP地址 1433,系統(tǒng)是否提示連接出錯(cuò),如系統(tǒng)提示出錯(cuò)
檢查是否防火墻屏蔽了SQL SERVER 或 java IDE 的網(wǎng)絡(luò)訪問端口
如果是,關(guān)閉防火墻,重新啟動(dòng)SQL SERVER和java IDE,進(jìn)行測試,
如果系統(tǒng)仍提示上述錯(cuò)誤,嘗試下列步驟
3 檢查SQL SERVER 端口號(hào)及是否啟用了TCP/IP協(xié)議,具體步驟:
1)打開"企業(yè)管理器",打開控制臺(tái)根目錄>SQL Server 組>數(shù)據(jù)庫
2)在相應(yīng)"數(shù)據(jù)庫"上單擊右鍵,選擇"屬性"
3)選擇"常規(guī)"選項(xiàng)卡,點(diǎn)擊"網(wǎng)絡(luò)配置",如啟用的協(xié)議中無"TCP/IP協(xié)議"將其加入
4)選擇"TCP/IP協(xié)議",點(diǎn)擊"屬性",檢查其端口號(hào)是否為1433
5)如端口號(hào)為1433將其修改為其它端口號(hào),修改jdbc連接語句,將端口號(hào)同樣改為新啟用的端口號(hào),如jdbc:microsoft:sqlserver://server_name:1400(假設(shè)新端口號(hào)為 1400)
以下的方法你每種的去試試:
#檢查一下sql server的connection有沒有full.
#如果是認(rèn)證的問題.
可到sql enterprice manager->指定server->內(nèi)容->安全性.
把驗(yàn)證改為 SQL server 及 windows.
#點(diǎn)選屬性檢查一下port是否正確.
#執(zhí)行%MSSQL_HOME%80ToolsBinnSVRNETCN.exe
把TCP/IP啟用.
#關(guān)掉防火墻.
安裝SP4補(bǔ)丁:具體步驟:
1 下載個(gè)SP4補(bǔ)丁包,下載地址:
http://www.microsoft.com/downloads/details.aspx?FamilyID=8e2dfc8d-c20e-4446-99a9-b7f0213f8bc5&DisplayLang=zh-cn
文件名:SQL2000-KB884525-SP4-x86-CHS.EXE
2 將文件“SQL2000-KB884525-SP4-x86-CHS.EXE”安裝后,產(chǎn)生“SQL2KSP4”文件夾,相當(dāng)于解壓這個(gè)補(bǔ)丁文件,雙擊“SQL2KSP4”文件夾里的“setup.bat”文件,才開始真正安裝SP4補(bǔ)丁文件。
注意:要先安裝MSSQL 2000數(shù)據(jù)庫,再安裝Sp4補(bǔ)丁文件。