穿过主机访问虚拟机中的SQL服务 FOR VMware NAT

 一般来说,大家都会在主机或者虚拟机中安装SQL+IIS,但假如主机的IIS想利用虚拟机中的SQL服务怎么办呢?

  以我的电脑为例子,主机系统:Windows 7 7600 RTM X64,安装IIS 7.5。虚拟机系统:Windows 2003 企业版,安装IIS 6.0和SQL server 2000。在win7下实在不想安装SQL 2000,现在以主机的IIS连接上虚拟机的SQL。

  SQL默认端口为1433,但为了提高安全性,会更改此端口号。我们以默认的来说吧。

  此教程前提是SQL已经新建一数据库为my_sw,用户为sa,密码为空。

虚拟机的网络基于NAT,Bridged的教程迟一点奉上。

一、首先确定虚拟机中的1433端口是否打开

  在命令提示符下输入:telnet 127.0.0.1 1433

穿过主机访问虚拟机中的SQL服务 FOR VMware NAT

  如果1433端口已经打开,显示如图:

穿过主机访问虚拟机中的SQL服务 FOR VMware NAT

  黑屏是正常的,证明可以连接上1433接口。

二、虚拟机1433映射到主机1433端口。

  此步骤可以参考《一起来穿越吧,穿过主机访问虚拟机中的网站系列教程(VMware篇)》,修改NAT端口映射。

穿过主机访问虚拟机中的SQL服务 FOR VMware NAT

  虽然说这儿的确是映射了,但有点不放心。我们首先确认一下主机的1433是不是在监听中。

  在命令提示符下输入netstat -na,假如你看到下图,可以确定映射成功。

穿过主机访问虚拟机中的SQL服务 FOR VMware NAT

 三、主机IIS和Conn.asp的设置

  关于主机IIS 7.5的设置,请参考《windows7下IIS的安装配置》。
Conn.asp的设置如图。

穿过主机访问虚拟机中的SQL服务 FOR VMware NAT

修改一

穿过主机访问虚拟机中的SQL服务 FOR VMware NAT

修改二

四、安装配置动易

  连接的网址还是自己的主机回放地址(或者你的IP地址)。

穿过主机访问虚拟机中的SQL服务 FOR VMware NAT

  假如看到如下安装界面,恭喜你,成功了。

穿过主机访问虚拟机中的SQL服务 FOR VMware NAT

五、关于1433端口连接错误的解决方案。

  下图是XP虚拟机未打开1433端口的截图。

穿过主机访问虚拟机中的SQL服务 FOR VMware NAT

  虚拟机中,命令提示符下,Telnet <服务器> 1433提示无法打开端口,可能原因有:

  1、数据库服务未启动。

  2、防火墙屏蔽了对telnet的响应。

  3、SQL服务未在1433端口上启动监听。

  如果你用查询分析器可以连接上,应用软件也连得上,只是Telnet 1433端口失败;并且也未改动过服务端口,其它都是正常的,那么这种问题在XP SP2+SQL SERVER 2000环境中最常见。解决办法几种:

  1、反安装XP SP2的补丁,这样通常是不会出现SQL SERVER连不上的问题的。

  2、XP SP2的操作系统安装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 sp4,并且windows2003防火墙已经关闭,在命令提示符下执行netstat -na 应该可以看到tcp 1433在监听。

  2、启动企业管理器查看SQL SERVER 2000 的系统日志,在日志中可以看到SQL SERVER 启动的是那些协议来等待远程连接的。

  另外记得打完补丁,重新启动机器,或者重新启动服务。

六、关于SQL端口的修改

  如图所示,找到服务器网络实用工具。

穿过主机访问虚拟机中的SQL服务 FOR VMware NAT

  选择TCP/IP,按属性按钮。

穿过主机访问虚拟机中的SQL服务 FOR VMware NAT

  从弹出的窗口可以修改SQL数据库的默认端口。

穿过主机访问虚拟机中的SQL服务 FOR VMware NAT

  同样地,想让动易连接上更改端口SQL server,对Conn.asp修改有所不同。

穿过主机访问虚拟机中的SQL服务 FOR VMware NAT

  甚至,你可以修改NAT的设置,使得虚拟机的SQL server 1433端口映射到主机的1434端口。

穿过主机访问虚拟机中的SQL服务 FOR VMware NAT

七、虚拟机防火墙设置

  以Windows 2003设置为例子。

  右键-网上邻居--属性--单击本地连接--高级--设置。

穿过主机访问虚拟机中的SQL服务 FOR VMware NAT

  在服务处点击添加,添加如图(IP地址可以填写127.0.0.1,或者你的PC名字),确定就可以让1434端口对外开放。

穿过主机访问虚拟机中的SQL服务 FOR VMware NAT

八、番外篇

  有关注我们穿越系列教程的同学都知道,VBox同样会有新的关于穿越SQL server的应用,敬请期待。




本文转自黄聪博客园博客,原文链接:http://www.cnblogs.com/huangcong/archive/2010/05/11/1732401.html,如需转载请自行联系原作者

上一篇:外部网络通过端口映射访问部署在虚拟机里的docker中的web应用


下一篇:付费?是不可能的!20行Python代码实现一款永久免费PDF编辑工具