8

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

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

我有:
* 尝试使用名称管道和 TCP/IP 进行连接
* 确保 SQL 浏览器服务已启动
* 确保来宾上的防火墙已打开
* 服务器配置为允许远程连接(根据内部的数据库引擎属性来宾上的 SSMS)

我错过了什么?

编辑:我想通了。我的分辨率如下。

4

4 回答 4

5

自我接受的答案

感谢您的想法。经过大量的摆弄,我得到了工作。原来我没有进入 Sql Server 配置管理器并启用 TCP/IP 和命名管道作为网络协议。因此,即使 SSMS 表示启用了远程连接,除了共享内存之外,没有其他协议允许它们使用。完成此操作后,我重新启动了 SQL Server 服务,但事情似乎仍然无法正常工作。然而,一旦我重新启动了来宾和主机,一切都按预期工作。

于 2008-11-22T04:12:31.807 回答
2

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

于 2008-11-21T22:27:55.590 回答
1

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

于 2008-11-21T22:33:15.237 回答
0

要添加一些上面没有明确指出的步骤,根据我的经验,将虚拟 PC 的网络设置到我的物理网络适配器。

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

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

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

于 2012-08-24T06:32:53.830 回答