如何使Virtual PC中的SQL Server可以访问主机操作系统?

时间:2008-11-21 22:19:57

标签: sql-server virtual-pc

我在Windows XP主机上的VirtualPC实例上运行SQL Server 2008 Express。我希望能够使用主机上的SSMS连接到guest虚拟机实例上的数据库。当我从主机上的SSMS进行连接并浏览服务器时,我在guest虚拟机上看到了SQL Server的实例。然而,当我尝试使用SQL身份验证登录进行连接时,出现以下连接错误:

建立与SQL Server的连接时发生与网络相关或特定于实例的错误。服务器未找到或无法访问。验证实例名称是否正确,以及SQL Server是否配置为允许远程连接。 (提供程序:SQL网络接口,错误:28 - 服务器不支持请求的协议)(Microsoft SQL Server,错误:-1)

我有:
*尝试连接名称管道和TCP / IP
*确保SQL浏览器服务正常运行 *确保客人的防火墙处于打开状态 *服务器配置为允许远程连接(根据guest虚拟机SSMS中的数据库引擎属性)

我错过了什么?

编辑:我想出来了。我的决议如下。

4 个答案:

答案 0 :(得分:5)

自我接受的答案

感谢您的想法。经过多次摆弄,我得到了一些工作。事实证明,我没有进入Sql Server配置管理器并启用TCP / IP和命名管道作为网络协议。因此,尽管SSMS表示远程连接已启用,但除了共享内存之外,没有任何协议允许它们。我这样做后,我重新启动了SQL Server服务,但事情似乎仍然无法正常工作。然而,一旦我重新启动了访客和主机,一切都按预期工作。

答案 1 :(得分:2)

您的IP设置如何?你在两台机器之间共享相同的IP地址吗?如果是这样,那么当您的客户端尝试连接到10.1.1.10时,它可能会访问托管VPC实例的计算机的IP,并且该计算机未运行SQL Server实例。如果可能,让VPC获得自己的IP并尝试。

答案 2 :(得分:1)

大多仔细检查你已经说过的话,
关闭访客防火墙以确保它不是那样的。
确保您的虚拟机网络设置为桥接而非NAT 尝试连接到guest虚拟机的IP地址而不是其名称 确保SQL Server允许远程连接,并且客户端和服务器都使用tcp / ip(如果您愿意,还使用命名管道)。
我不知道启用远程连接是否需要重新启动SQL服务器 尝试使用SQL身份验证来消除身份验证问题。你在域上运行吗?

答案 3 :(得分:0)

要添加上面未明确调出的一些步骤,根据我的经验,将Virtual PC的网络设置为我的物理网络适配器。

然后禁用公共配置文件的Windows防火墙。

希望实际上可以将其锁定到端口1433.

此外,在来宾操作系统上,如果SQL Server仅安装了Windows身份验证,则稍后会添加SQL身份验证,请注意默认情况下,“sa”已禁用以进行登录访问。 “启用”登录“sa”或(更好的主意)根据需要创建具有适当权限的登录。