如何将在Virtual PC中运行的SQL Server对主机操作系统可访问?

8
我正在Windows XP的VirtualPC实例上运行SQL Server 2008 Express,该实例位于Windows XP主机内部。我想使用主机上的SSMS连接客户端实例中的数据库。当我在主机上的SSMS中尝试连接时,并浏览服务器,我可以看到客户端上的SQL Server实例。但是,当我尝试使用SQL身份验证登录连接时,我会收到以下连接错误:建立与SQL Server的连接时发生了与网络或特定实例相关的错误。未找到服务器或无法访问服务器。请验证实例名称是否正确,并确认SQL Server已配置为允许远程连接。(提供程序: SQL Network Interfaces,错误: 28 - 服务器不支持请求的协议) (Microsoft SQL Server,错误: -1) 我已经:
* 尝试使用命名管道和TCP/IP进行连接
* 确保SQL Browser服务正常运行
* 确保客户端防火墙处于开放状态
* 根据客户端中SSMS中的数据库引擎属性,将服务器配置为允许远程连接
我错过了什么?
4个回答

5

自我接受的答案

感谢提供的想法。经过多次尝试,我终于让事情运行起来了。原来我没有进入Sql Server配置管理器并启用TCP/IP和命名管道作为网络协议。因此,即使SSMS说远程连接已启用,除了共享内存外,没有其他协议允许它们。在我这样做之后,我重新启动了SQL Server服务,但事情似乎仍然没有正常工作。然而,一旦我重新启动了客户机和主机,一切都像预期的那样工作了。


2

你的IP设置怎么样?两台机器是否共享同一个IP地址?如果是这样,那么当客户端尝试连接10.1.1.10时,可能会命中托管VPC实例的机器的IP地址,而该机器未运行SQL Server实例。如果可能的话,请让VPC获取自己的IP并尝试连接。


1

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


0

为了添加一些在上面没有明确说明的步骤,根据我的经验,设置虚拟机的网络连接到物理网络适配器是有效的。

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

希望能够将其锁定到端口1433。

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接