刚刚写了个DEMO,在内网来测试SQL2000后完全正常。现在想测试外网是否正常,毕竟路由器IP不固定,所以选择了路由器+花生壳免费域名(koma.5166.info),所以先安装花生壳客户端软件。下面是我在这过程中遇到的一些问题:

1、理论上将1433端口映射出去(这个端口是SQL2000服务器默认的端口)

结果发现程序、SQL查询分析器都无法连接服务器。这时我排除WINDOWS防火墙、关闭瑞星防火墙与杀毒软件仍无法连接。

于是乎查阅相关资料,网上的资料真的太多,涉及到的参数与设置太多,估计是大多人喜欢转载来转载去的,真不知道他们自己实践过没有。结果仍然没有成功!

2、SQL2000 SP4补丁程序

这是很多地方看到最多的一个方法,于是先下载安装完这个补丁后,发现DEMO程序与SQL查询分析器还是无法正确连接,于是查看端口监听状态,在命令行输入netstat -an

  1. C:/Documents and Settings/Koma>netstat -an
  2. Active Connections
  3. Proto  Local Address          Foreign Address        State
  4. TCP    0.0.0.0:135            0.0.0.0:0              LISTENING
  5. TCP    0.0.0.0:445            0.0.0.0:0              LISTENING
  6. TCP    0.0.0.0:1433           0.0.0.0:0              LISTENING
  7. TCP    0.0.0.0:6059           0.0.0.0:0              LISTENING
  8. TCP    127.0.0.1:1026         0.0.0.0:0              LISTENING
  9. TCP    127.0.0.1:1036         127.0.0.1:1025         CLOSE_WAIT
  10. TCP    127.0.0.1:1038         127.0.0.1:1025         CLOSE_WAIT
  11. TCP    192.168.1.100:139      0.0.0.0:0              LISTENING
  12. UDP    0.0.0.0:445            *:*
  13. UDP    0.0.0.0:1434           *:*
  14. UDP    127.0.0.1:123          *:*
  15. UDP    127.0.0.1:1049         *:*
  16. UDP    127.0.0.1:1239         *:*
  17. UDP    127.0.0.1:1900         *:*
  18. UDP    192.168.1.100:123      *:*
  19. UDP    192.168.1.100:137      *:*
  20. UDP    192.168.1.100:138      *:*
  21. UDP    192.168.1.100:1900     *:*
  22. C:/Documents and Settings/Koma>

此时我关闭所有那些无关的应用程序,于是将上面所有侦听的端口全部隐射出去,最终排锁定在两个端口:1433与445。

3、DEMO程序相关代码

A、建立连接时的代码:

  1. BOOL CQDlg::OnInitDialog()
  2. {
  3. ......
  4. // Set the icon for this dialog.  The framework does this automatically
  5. //  when the application's main window is not a dialog
  6. SetIcon(m_hIcon, TRUE);         // Set big icon
  7. SetIcon(m_hIcon, FALSE);        // Set small icon
  8. // TODO: Add extra initialization here
  9. //初始化COM接口
  10. if (!AfxOleInit())
  11. {
  12. AfxMessageBox("初始化com接口失败");
  13. }
  14. HRESULT hr;
  15. try
  16. {
  17. // 创建Connection对象
  18. hr = m_pConnection.CreateInstance("ADODB.Connection");
  19. if(SUCCEEDED(hr))
  20. {
  21. // 连接数据库成功
  22. hr = m_pConnection->Open("Provider=SQLOLEDB;Server=koma.5166.info,1433;DataBase=student;UID=sa;PWD=","","",adModeUnknown);
  23. // MessageBox("数据库连接成功!");
  24. }
  25. }
  26. catch(_com_error e)
  27. {
  28. // 捕捉异常
  29. CString errormessage;
  30. errormessage.Format("连接数据库失败!/r/n错误信息:%s",e.ErrorMessage());
  31. AfxMessageBox(errormessage);///显示错误信息
  32. }
  33. return TRUE;
  34. }

B、程序运行效果:

C、SQL查询分析器:

4、总结

MS SQL2000“表面”上看起来像只是1433端口在侦听,但实际上还有个445端口也在侦听,两者缺一不可。 所以让外网主机访问内网SQL2000服务器必须先安装SP4补丁(打补丁前请先备份好自己重要的数据),再将1433与445端口两个都从NAT设备中映射出去即可。

至于为什么需要同时侦听这两个端口,哪位友友知道的麻烦告诉我一下,谢谢啊!

SQL2000服务端配置-如何让外网访问SQL2000的更多相关文章

  1. TortoiseSVN和VisualSVN-Server的配置使用,外网访问SVN版本库

    TortoiseSVN和VisualSVN-Server的配置使用,外网访问SVN版本库 SVN客户端程序:TortoiseSVN SVN服务器程序:VisualSVN-Server ######## ...

  2. VMware下Linux配置局域网和外网访问

    我想尝试的是利用本机的ip+port来访问虚拟机上的web服务器,因为这样的话,我就能够将我的web服务器部署成为一个能让外网访问的服务器了,首先说下我的环境: 主机:系统win7,ip地址172.1 ...

  3. wamp基本配置与设置外网访问

    wamp安装(都是一键安装)正常启动后,做一些基本配置的介绍: 1.打开rewrite_module,方法一:左键点击wamp图标,鼠标移至Apache,然后平移至Apache模块,勾选rewrite ...

  4. VMware下Linux配置局域网和外网访问(CentOS)

    要使用Linux系统很重要的一个操作就是使Linux系统能够访问互联网,只有Linux系统能够访问互联网才能够去下载很多自己所需要的资源,如果不能访问互联网那么使用Linux系统往往会卡在这一步,假设 ...

  5. centos7下配置iptables实现外网访问内网服务器

    说明:Centos 7 默认的防火墙是 firewall,安装iptables之前需关闭Firewall 外网机器:外网ip:120.25.71.183内网ip:10.1.1.23 内网机器:内网ip ...

  6. VMware下Linux网络配置局域网和外网访问

    要使用Linux系统很重要的一个操作就是使Linux系统能够访问互联网,只有Linux系统能够访问互联网才能够去下载很多自己所需要的资源,如果不能访问互联网那么使用Linux系统往往会卡在这一步,假设 ...

  7. 配置cas可外网访问

    把应用程序tomcat下的conf下的context.xml里配置内容修改 如把: D:\apache-tomcat-APP\conf\context.xml <Resource name=&q ...

  8. wamp2.5 配置Apache允许外网访问

    找到<Directory "e:/wamp/www/">节点,在里面添加Require all granted

  9. WAMP完整配置教程(启用php extensions、修改端口、允许外网访问、wamp绑定域名)。

    作为一名php爱好者,很希望自己的写的代码能够快速的在浏览器页面展现出来,wamp是一款集成很完善.很方便的软件,我刚开始研究的时候,会因为对于wamp的不熟悉,导致修改一点点配置就会在百度查好久,这 ...

随机推荐

  1. 大数据-07-Spark之流数据

    摘自 http://dblab.xmu.edu.cn/blog/1084-2/ 简介 DStream是Spark Streaming的编程模型,DStream的操作包括输入.转换和输出. Spark ...

  2. 2.33 定位的坑:class属性有空格

    2.33 定位的坑:class属性有空格 前言有些class属性中间有空格,如果直接复制过来定位是会报错的InvalidSelectorException: Message:The given sel ...

  3. BF字符串匹配算法

    Brute Force算法是普通的模式匹配算法,BF算法的思想就是将目标串S的第一个字符与模式串T的第一个字符进行匹配,若相等,则继续比较S的第二个字符和 T的第二个字符: 若不相等,则比较S的第二个 ...

  4. [LeetCode&Python] Problem 661. Image Smoother

    Given a 2D integer matrix M representing the gray scale of an image, you need to design a smoother t ...

  5. javascript的this多种场景用法

    作者:刘志祥 时间:2017.11.10 参考:阮一峰的官方网站 this 是javaScript中的一个关键字,只能在函数内使用.随着场合的不同,this的值会发生变化. 1. 单纯的全局函数调用, ...

  6. 【转】matlab的textscan与textread区别

    1.基本语法textscan的基本语法是:C = textscan(fid, 'format') C = textscan(fid, 'format', N) 其中fid为fopen命令返回的文件标识 ...

  7. eclipse打jar包解决第三方依赖包

    在项目根目录下手动MANIFEST.MF(eclipse无法自动生成) MANIFEST.MF Manifest-Version: 1.0 Class-Path: lib/kafka-clients- ...

  8. C++学习(十六)(C语言部分)之 数组三

    复习 以及 测试 /* 一维数组 数组是相同的数据的一个集合 <类型><数组名>[下标表达式]={数组元素 初始值}; 数组名和变量的命名规则是一样的 数组名是一个地址 数组下 ...

  9. Redux 学习笔记

    1:首先安装redux: npm install --save redux 2:引入redux : import { createStore } from 'redux'; //首先创建执行函数,Re ...

  10. 剑指offer-在数组中查找两个数,是的他们的和正好是S(一次性跑通)(时间复杂度还可以降低)

    /*对于一个递增的序列,存在2个数字的和相等,要想这2个数字的乘积最小,则这2个数字的距离最远*/ /*思想:j指向最后一个元素,然后i从前扫描看sum-a[j]在这个序列中吗?若不在j--*/ im ...