我已经安装了Windows Web Server 2008 R2的虚拟开发机器,并且安装了SQL Server 2008 R2 Express 。 我没有安装任何SQL工具,因为我在主机上有它们。
虚拟机正在VMWare Workstation 8上运行。
VM有2个网卡
我没有运行SQL浏览器,并使用machine \ instance,port name直接连接到它。 即使SQL不可发现,也可以通过这种方式连接到它。
我已经在防火墙上打开了SQL引擎的networking端口。
我可以使用桥接IP地址访问我的SQL,但不能访问主机IP地址。 我已经检查了SQL Express的协议并启用了TCP / IP,并检查了显示5个IP的IP地址标签:
这不知何故解释了为什么我不能使用主机专用networking访问我的SQL。 即使我更改这些设置,并将桥接IP更改为仅主机,我仍然无法访问我的SQL。
似乎只有主机的networking是不可见的SQL。 虽然它工作。
另一个事实是,如果我从我的主机ping我的虚拟机,我在桥接networking上得到响应,但不是在主机上。
我怀疑这必须与虚拟机的主机专用networking设置有某种关系。 或者可能不是。 因此,这个问题。 现在的问题是如何在我的虚拟机上安装SQL服务器,以便我可以通过主机和本地主机访问它(因为Web应用程序在同一台计算机上运行)? 但我不希望SQL服务器通过桥接networking访问,所以没有人能够访问它。
好吧,我设法通过configuration虚拟networking和configurationSQL Server来解决这个问题。
我的主机只configuration设置为自动,但使用VMWare这个networking没有任何网关应用到它,所以我添加了一个默认网关是相同的DNS(在我的情况下这是192.168.100.254)。
这使得Windowsnetworking可以将networking识别为不公开而非私有的。 这意味着某些安全级别以不同的方式应用于此。
我现在可以以任何一种方式(从主机到VM guest虚拟机,反之亦然)ping任一台计算机。 这两个ping都有一个回应,他们以前没有将networking标记为公开。
为SQL Express实例configuration协议并configuration了TCP / IP设置,并在第一个选项卡(协议)上将全部收听设置为否 ,这意味着我必须在第二个tba(IP地址)上configuration单个IP, IP(v4和v6),并更改了v4 IP地址,因此它反映了虚拟主机专用networking的IP地址:
然后清除所有这三个IP地址TCPdynamic端口 ,并将静态的一个TCP端口设置为我想要使用的1433 。
现在我回到主机,并尝试使用桥接IP地址首先连接SSMS到我的虚拟机。 它失败。 然后作为第二次尝试我使用主机只有IP地址,并在我能够连接到我的SQL Server实例。 成功 。
这完全locking了我的SQL Server实例到本地机器和我的开发主机。