SQL學習筆記:服務端配置-如何讓外網訪問SQL2000

來源:互聯網
上載者:User

      剛剛寫了個DEMO,在內網來測試SQL2000後完全正常。現在想測試外網是否正常,畢竟路由器IP不固定,所以選擇了路由器+花生殼免費網域名稱(koma.5166.info),所以先安裝花生殼用戶端軟體。下面是我在這過程中遇到的一些問題:

 

1、理論上將1433連接埠映射出去(這個連接埠是SQL2000伺服器預設的連接埠)

 

      結果發現程式、SQL查詢分析器都無法串連伺服器。這時我排除WINDOWS防火牆、關閉瑞星防火牆與殺毒軟體仍無法串連。

 

      於是乎查閱相關資料,網上的資料真的太多,涉及到的參數與設定太多,估計是大多人喜歡轉載來轉載去的,真不知道他們自己實踐過沒有。結果仍然沒有成功!

 

2、SQL2000 SP4補丁程式

 

      這是很多地方看到最多的一個方法,於是先下載安裝完這個補丁後,發現DEMO程式與SQL查詢分析器還是無法正確串連,於是查看連接埠監聽狀態,在命令列輸入netstat -an

 

C:/Documents and Settings/Koma>netstat -an</p><p>Active Connections</p><p> Proto Local Address Foreign Address State<br /> TCP 0.0.0.0:135 0.0.0.0:0 LISTENING<br /> TCP 0.0.0.0:445 0.0.0.0:0 LISTENING<br /> TCP 0.0.0.0:1433 0.0.0.0:0 LISTENING<br /> TCP 0.0.0.0:6059 0.0.0.0:0 LISTENING<br /> TCP 127.0.0.1:1026 0.0.0.0:0 LISTENING<br /> TCP 127.0.0.1:1036 127.0.0.1:1025 CLOSE_WAIT<br /> TCP 127.0.0.1:1038 127.0.0.1:1025 CLOSE_WAIT<br /> TCP 192.168.1.100:139 0.0.0.0:0 LISTENING<br /> UDP 0.0.0.0:445 *:*<br /> UDP 0.0.0.0:1434 *:*<br /> UDP 127.0.0.1:123 *:*<br /> UDP 127.0.0.1:1049 *:*<br /> UDP 127.0.0.1:1239 *:*<br /> UDP 127.0.0.1:1900 *:*<br /> UDP 192.168.1.100:123 *:*<br /> UDP 192.168.1.100:137 *:*<br /> UDP 192.168.1.100:138 *:*<br /> UDP 192.168.1.100:1900 *:*</p><p>C:/Documents and Settings/Koma>

 

      此時我關閉所有那些無關的應用程式,於是將上面所有偵聽的連接埠全部隱射出去,最終排鎖定在兩個連接埠:1433與445。

 

3、DEMO程式相關代碼

 

      A、建立串連時的代碼:

BOOL CQDlg::OnInitDialog()<br />{<br />......</p><p>// Set the icon for this dialog. The framework does this automatically<br />// when the application's main window is not a dialog<br />SetIcon(m_hIcon, TRUE);// Set big icon<br />SetIcon(m_hIcon, FALSE);// Set small icon</p><p>// TODO: Add extra initialization here<br />//初始化COM介面<br />if (!AfxOleInit())<br />{<br />AfxMessageBox("初始化com介面失敗");<br />}<br />HRESULT hr;<br />try<br />{<br />// 建立Connection對象<br />hr = m_pConnection.CreateInstance("ADODB.Connection");<br />if(SUCCEEDED(hr))<br />{<br />// 串連資料庫成功<br />hr = m_pConnection->Open("Provider=SQLOLEDB;Server=koma.5166.info,1433;DataBase=student;UID=sa;PWD=","","",adModeUnknown);<br />// MessageBox("資料庫連接成功!");<br />}<br />}<br />catch(_com_error e)<br />{<br />// 捕捉異常<br />CString errormessage;<br />errormessage.Format("串連資料庫失敗!/r/n錯誤資訊:%s",e.ErrorMessage());<br />AfxMessageBox(errormessage);///顯示錯誤資訊<br />}<br />return TRUE;<br />}

 

      B、程式運行效果:

 

 

       C、SQL查詢分析器:

 

4、總結

 

     MS SQL2000“表面”上看起來像只是1433連接埠在偵聽,但實際上還有個445連接埠也在偵聽,兩者缺一不可。 所以讓外網主機訪問內網SQL2000伺服器必須先安裝SP4補丁(打補丁前請先備份好自己重要的資料),再將1433與445連接埠兩個都從NAT裝置中映射出去即可。

 

     至於為什麼需要同時偵聽這兩個連接埠,哪位友友知道的麻煩告訴我一下,謝謝啊!

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.