一般来说,大家都会在主机或者虚拟机中安装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
如果1433端口已经打开,显示如图:
黑屏是正常的,证明可以连接上1433接口。
二、虚拟机1433映射到主机1433端口。
此步骤可以参考《一起来穿越吧,穿过主机访问虚拟机中的网站系列教程(VMware篇)》,修改NAT端口映射。
虽然说这儿的确是映射了,但有点不放心。我们首先确认一下主机的1433是不是在监听中。
在命令提示符下输入netstat -na,假如你看到下图,可以确定映射成功。
关于主机IIS 7.5的设置,请参考《windows7下IIS的安装配置》。
Conn.asp的设置如图。
修改一
修改二
四、安装配置动易
连接的网址还是自己的主机回放地址(或者你的IP地址)。
假如看到如下安装界面,恭喜你,成功了。
五、关于1433端口连接错误的解决方案。
下图是XP虚拟机未打开1433端口的截图。
虚拟机中,命令提示符下,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补丁下载:
全部补丁的位置
应该安装的是
注意下载后,执行的时候是解压,要在解压后的目录中执行setup.bat才是真正的安装
如果你的操作系统是xp,那么在安装xp sp2后,不管以前是否安装过sql sp4,都要再安装一次,并且在防火墙中开启1433端口,否则无法被其他电脑访问。
如何检查1433是否在监听?或者检查有哪些端口在监听?
1、如果打了sql sp4,并且windows2003防火墙已经关闭,在命令提示符下执行netstat -na 应该可以看到tcp 1433在监听。
2、启动企业管理器查看SQL SERVER 2000 的系统日志,在日志中可以看到SQL SERVER 启动的是那些协议来等待远程连接的。
另外记得打完补丁,重新启动机器,或者重新启动服务。
六、关于SQL端口的修改
如图所示,找到服务器网络实用工具。
选择TCP/IP,按属性按钮。
从弹出的窗口可以修改SQL数据库的默认端口。
同样地,想让动易连接上更改端口SQL server,对Conn.asp修改有所不同。
甚至,你可以修改NAT的设置,使得虚拟机的SQL server 1433端口映射到主机的1434端口。
七、虚拟机防火墙设置
以Windows 2003设置为例子。
右键-网上邻居--属性--单击本地连接--高级--设置。
在服务处点击添加,添加如图(IP地址可以填写127.0.0.1,或者你的PC名字),确定就可以让1434端口对外开放。
八、番外篇
有关注我们穿越系列教程的同学都知道,VBox同样会有新的关于穿越SQL server的应用,敬请期待。
本文转自黄聪博客园博客,原文链接:http://www.cnblogs.com/huangcong/archive/2010/05/11/1732401.html,如需转载请自行联系原作者