遠端連線SQL Server

hljhrbsjf發表於2008-01-08
作者: silverstar 發表日期: 2007-05-24

一 看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,因此在本地能連通是不能說明什麼問題的,連線遠端伺服器是完全不同的協議)


posted on 2006-08-09 13:57 仰天一笑 閱讀(1878) 評論(6) 編輯 收藏 引用 網摘 所屬分類: DataBase


評論
# re: 遠端連線SQL Server 2006-08-09 14:03 仰天一笑
SQL Server 2000不能遠端連線的問題

  本文主要是針對 SQL Server 2000安裝在 Windows 2003上的問題。

  在 Windows 2003下,若sql2000不打補丁,則SQL Server 2000不會監聽1433埠,這時,可以在本機上連線資料庫,但無法從其它機器連線。打過SP4補丁後才能遠端連線,有時,打過SP4補丁後,SQL Server 2000 預設監聽的埠不是1433,而是2433。

  所以,安裝SQL Server 2000後,應該先打 SP4 補丁,打完後,若是無法連線,請用 NetState -an 檢視1433埠是否被監聽。若監聽的是2433,你可以在客戶端設定SQL Server 的埠,也可以用企業管理器,對伺服器點右鍵 => 屬性 => 網路配置 => 點中右邊的 TCP/IP 選擇屬性 即可修改SQL Server 監聽的埠。

  若是埠正常,請檢查 Win2003的防火牆中是不是把1433埠開放了。

[@more@]

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/631872/viewspace-996869/,如需轉載,請註明出處,否則將追究法律責任。

相關文章