遠(yuǎn)程連接sql server 2000服務(wù)器的解決方案
這篇文章主要針對(duì)Win2003系統(tǒng)安裝SQL Sever2000后1433端口未開放,如何打開1433端口的解決方法。
用了幾年的Windows2003和SQL Server2000了,不過這個(gè)問題倒是頭次遇到。最近調(diào)試一個(gè)JSP+SQL2000WEB程序遇到個(gè)現(xiàn)象,在Win2003簡體中文服務(wù)器版上安裝SQL Server2000,默認(rèn)安裝,一切正常,但是在安裝完成后Tomcat運(yùn)行正常,JSP程序卻無法連接SQL2000數(shù)據(jù)庫,查看端口,1433端口居然未開放,當(dāng)然更不用說遠(yuǎn)程連接了。 一般分析的都是這樣: 1、sql server服務(wù)沒有啟動(dòng); 檢查服務(wù)啟動(dòng),重新啟動(dòng)服務(wù)故障依然。 2、修改了端口號(hào); 打開網(wǎng)絡(luò)實(shí)用工具,檢查啟用的協(xié)議中有TCP/IP協(xié)議,查看端口,是1433沒錯(cuò)。 3、客戶端實(shí)用工具作了改動(dòng); 打開客戶端實(shí)用工具,檢查協(xié)議端口正常,重新創(chuàng)建一個(gè)別名,依然不行。 4、安裝的問題; 懷疑安裝步驟有問題。遂卸載重裝,一切默認(rèn),故障依然。 5、安裝版本的問題; 查看安裝光盤,是久經(jīng)考驗(yàn)的安裝盤,應(yīng)該不會(huì)出問題。 6、系統(tǒng)的問題; 也看不出有什么其它的問題,難道是系統(tǒng)的問題?不過重裝系統(tǒng)可太過麻煩,還是先想想其它的辦法,看能不能找到問題所在。檢查系統(tǒng)日志,這個(gè)應(yīng)該是一個(gè)比較好的習(xí)慣。仔細(xì)翻了一遍重新安裝后的日志,赫然發(fā)現(xiàn)如下內(nèi)容:您運(yùn)行的 Microsoft SQL Server 2000 版本或 Microsoft SQL Server 2000 Desktop Engine (也稱為 MSDE) 和 Microsoft Windows Server 2003 家族使用時(shí)存在已知的安全弱點(diǎn)。為了減少計(jì)算機(jī)被某些病毒的攻擊,Microsoft SQL Server 2000,MSDE 或 兩者的 TCP/IP 和 UDP 網(wǎng)絡(luò)端口被禁用。要啟用這些端口,您必須從 www.microsoft.com/sql/downloads/default.asp或www.microsoft.com/china/sql/downloads/default.asp安裝一個(gè)修補(bǔ)程序,或 Microsoft SQL Server 2000 或 MSDE 的最新服務(wù)包。 有關(guān)更多信息,請(qǐng)參閱在 go.microsoft.com/fwlink/events.asp 的幫助和支持 終于找到問題了,原來是Windows的一個(gè)小小的安全考慮。那么為什么以前就沒遇到過呢,原來搞慣安全的人,安 裝好sql以后,在使用前一定會(huì)先修補(bǔ)漏洞,所以一直未注意過這個(gè)問題??磥硎裁礃拥牧?xí)慣都會(huì)有一些弊端! 既然找到問題就簡單了,立刻到微軟網(wǎng)站:http://www.microsoft.com/downloads/details.aspx?displaylang=zh-cn&FamilyID=8E2DFC8D-C20E-4446-99A9-B7F0213F8BC5 下載SP4的“數(shù)據(jù)庫組件(下載文件:SQL2000-KB884525-SP4-x86.EXE)” 安裝SQL Server SP4后,瀏覽器地址欄測試www.ITstudy.cn一切正常。 附: 遠(yuǎn)程連接sql server 2000服務(wù)器的解決方案 解決方案步驟: 一 看ping 服務(wù)器IP能否ping通。 這個(gè)實(shí)際上是看和遠(yuǎn)程sql server 2000服務(wù)器的物理連接是否存在。如果不行,請(qǐng)檢查網(wǎng)絡(luò),查看配置,當(dāng)然得 確保遠(yuǎn)程sql server 2000服務(wù)器的IP拼寫正確。 二 在Dos或命令行下輸入telnet 服務(wù)器IP 端口,看能否連通。 如telnet 202.114.100.100 1433 通常端口值是1433,因?yàn)?433是sql server 2000的對(duì)于Tcp/IP的默認(rèn)偵聽端口。如果有問題,通常這一步會(huì)出問 題。通常的提示是“……無法打開連接,連接失敗"。 如果這一步有問題,應(yīng)該檢查以下選項(xiàng)。 1 檢查遠(yuǎn)程服務(wù)器是否啟動(dòng)了sql server 2000服務(wù)。如果沒有,則啟動(dòng)。 2 檢查服務(wù)器端有沒啟用Tcp/IP協(xié)議,因?yàn)檫h(yuǎn)程連接(通過因特網(wǎng))需要靠這個(gè)協(xié)議。檢查方法是,在服務(wù)器上 打開開始菜單->程序->Microsoft SQL Server->服務(wù)器網(wǎng)絡(luò)實(shí)用工具,看啟用的協(xié)議里是否有tcp/ip協(xié)議,如果 沒有,則啟用它。 3 檢查服務(wù)器的tcp/ip端口是否配置為1433端口。仍然在服務(wù)器網(wǎng)絡(luò)實(shí)用工具里查看啟用協(xié)議里面的tcp/ip的屬 性,確保默認(rèn)端口為1433,并且隱藏服務(wù)器復(fù)選框沒有勾上。 事實(shí)上,如果默認(rèn)端口被修改,也是可以的,但是在客戶端做telnet測試時(shí),寫服務(wù)器端口號(hào)時(shí)必須與服務(wù)器配 置的端口號(hào)保持一致。如果隱藏服務(wù)器復(fù)選框被勾選,則意味著客戶端無法通過枚舉服務(wù)器來看到這臺(tái)服務(wù)器, 起到了保護(hù)的作用,但不影響連接,但是Tcp/ip協(xié)議的默認(rèn)端口將被隱式修改為2433,在客戶端連接時(shí)必須作相 應(yīng)的改變。 4 如果服務(wù)器端操作系統(tǒng)打過sp2補(bǔ)丁,則要對(duì)windows防火墻作一定的配置,要對(duì)它開放1433端口,通常在測試 時(shí)可以直接關(guān)掉windows防火墻(其他的防火墻也關(guān)掉最好)。 5 檢查服務(wù)器是否在1433端口偵聽。如果服務(wù)器沒有在tcp連接的1433端口偵聽,則是連接不上的。檢查方法是在 服務(wù)器的dos或命令行下面輸入 netstat -a -n 或者是netstat -an,在結(jié)果列表里看是否有類似 tcp 127.0.0.1 1433 listening 的項(xiàng)。如果沒有,則通常需要給sql server 2000打上至少sp3的補(bǔ)丁。其實(shí)在服務(wù)器端啟動(dòng)查詢 分析器,輸入 select @@version 執(zhí)行后可以看到版本號(hào),版本號(hào)在8.0.2039以下的都需要打補(bǔ)丁。 如果以上都沒問題,這時(shí)你再做telnet 服務(wù)器ip 1433 測試,將會(huì)看到屏幕一閃之后光標(biāo)在左上角不停閃動(dòng)。恭 喜你,你馬上可以開始在企業(yè)管理器或查詢分析器連接了。 三 檢查客戶端設(shè)置 程序->Microsoft SQL Server-> 客戶端網(wǎng)絡(luò)使用工具。像在服務(wù)器網(wǎng)絡(luò)實(shí)用工具里一樣,確??蛻舳藅cp/ip協(xié)議 啟用,并且默認(rèn)端口為1433(或其他端口,與服務(wù)器端保持一致就行)。 四 在企業(yè)管理器里或查詢分析器連接測試 企業(yè)管理器->右鍵SQlserver組->新建sqlserver注冊(cè)->下一步->寫入遠(yuǎn)程IP->下一步-> 選Sqlserver登陸->下一 步->寫入登陸名與密碼(sa,password)->下一步->下一步->完成 查詢分析器->文件->連接->寫入遠(yuǎn)程IP->寫入登錄名和密碼(sa,password)->確定 通常建議在查詢分析器里做,因?yàn)槟J(rèn)情況下,通過企業(yè)管理器注冊(cè)另外一臺(tái)SQL Server的超時(shí)設(shè)置是4秒,而查 詢分析器是15秒。 修改默認(rèn)連接超時(shí)的方法: 企業(yè)管理器->工具->選項(xiàng)->在彈出的"SQL Server企業(yè)管理器屬性"窗口中,點(diǎn)擊"高級(jí)"選項(xiàng)卡->連接設(shè)置->在登 錄超時(shí)(秒) 后面的框里輸入一個(gè)較大的數(shù)字 查詢分析器->工具->選項(xiàng)->連接->在登錄超時(shí)(秒) 后面的框里輸入一個(gè)較大的數(shù)字 通常就可以連通了,如果提示錯(cuò)誤,則進(jìn)入下一步。 五 錯(cuò)誤產(chǎn)生的原因通常是由于SQL Server使用了"僅 Windows"的身份驗(yàn)證方式,因此用戶無法使用SQL Server的 登錄帳戶(如 sa )進(jìn)行連接。解決方法如下所示: 1 在服務(wù)器端使用企業(yè)管理器,并且選擇"使用 Windows 身份驗(yàn)證"連接上 SQL Server。 2 展開"SQL Server組",鼠標(biāo)右鍵點(diǎn)擊SQL Server服務(wù)器的名稱,選擇"屬性",再選擇"安全性"選項(xiàng)卡。 3 在"身份驗(yàn)證"下,選擇"SQL Server和 Windows "。 4 重新啟動(dòng)SQL Server服務(wù)。(在dos或命令行下面net stop mssqlserver停止服務(wù),net start mssqlserver啟動(dòng)服務(wù),也是一種快捷的方法)。 注:在連接本地服務(wù)器時(shí),通常使用的是命名管道協(xié)議(在服務(wù)器網(wǎng)絡(luò)實(shí)用工具里可以看到啟用的協(xié)議有這個(gè)) ,默認(rèn)端口是445,因此在本地能連通是不能說明什么問題的,連接遠(yuǎn)程服務(wù)器是完全不同的協(xié)議)。 |
|