我在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中的数据库引擎属性)
我错过了什么?
编辑:我想出来了。我的决议如下。答案 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”或(更好的主意)根据需要创建具有适当权限的登录。