按以下文章的做法,終於解決問題了。原來是SQL SP4的補丁沒打
1、sql2000 telnet 1433連接埠無法串連2008-12-31 21:521、資料庫服務未啟動。
2、防火牆屏蔽了對telnet的響應。
3、SQL服務未在1433連接埠上啟動監聽。
如果你用查詢分析器可以串連上,應用軟體也連得上,只是Telnet 1433連接埠失敗;並且也未改動過服務連接埠,其它都是正常的,那麼這種問題在XP2+SQL SERVER 2000環境中最常見。解決辦法幾種:
1、反安裝XP2的補丁,這樣通常是不會出現SQL SERVER連不上的問題的。
2、XP2的作業系統安裝SQL SERVER 2000的SP3補丁可解決Telnet SQL SERVER的1433連接埠無法開啟的問題。
3、其它作業系統比如2003的,最好補一下SQL SP4的。
檢查你的SQL有沒有打補丁,沒有的話要打上補丁,檢查的方法是在查詢分析器中運行:
select @@version
如果出來的版本號碼是8.00.2039以下,則表明你未安裝sp4的補丁,要裝上.
SQL補丁下載:
全部補丁的位置
http://www.microsoft.com/downloads/details.aspx?FamilyId=8E2DFC8D-C20E-4446-99A9-B7F0213F8BC5&displaylang=zh-cn
應該安裝的是
http://download.microsoft.com/download/9/b/f/9bff6646-2cdb-4069-ada0-548be9cb9338/SQL2000-KB884525-SP4-x86-CHS.EXE
注意下載後,執行的時候是解壓,要在解壓後的目錄中執行setup.bat才是真正的安裝
如果你的作業系統是xp,那麼在安裝xp sp2後,不管以前是否安裝過sql sp4,都要再安裝一次,並且在防火牆中開啟1433連接埠,否則無法被其他電腦訪問
如何檢查1433是否在監聽?或者檢查有哪些連接埠在監聽?
1、如果打了sql sp3,並且windows2003防火牆已經關閉, 在命令提示字元下執行
netstat -na 應該可以看到tcp 1433在監聽。
2、啟動企業管理器查看SQL SERVER 2000 的系統日誌,在日誌中可以看到SQL SERVER 啟動的是那些協議來等待遠端連線的。
另外記得打完補丁,重新啟動機器,或者重新啟動服務。
遠端連線sql server 2000伺服器的解決方案
解決方案步驟:
一 看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以下的都需要打補丁。
如果以上都沒問題,這時你再做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,因此在本地能連通是不能說明什麼問題的,串連遠程伺服器是完全不同的協議)。