访问 VM SQL Server 实例时出现问题

5 sql-server-2008 sql-server ssms

这就是我现在正在使用的。我有一个包含 SQL Server 2008 Enterprise 实例的主机操作系统。我在这台主机上运行了一个虚拟机,它有一个 SQL Server 2008 R2 Express 实例。在虚拟机中,我可以连接到 SSMS 中的主机实例。但是在主机操作系统中,我无法访问虚拟机的 Express 实例。

什么可能导致这种情况?主机可以ping通虚拟机,所以我认为不是网络问题。在虚拟机上的 SSCM 中,我已启用相应的网络协议。

还有什么我需要注意的吗?

And*_*ton 5

按照尝试的顺序:

1. 启用 TCP/IP

转到:SQL Server 虚拟机上的 SQL Server 配置管理器,在 SQL Server 网络配置下选择您的实例(应该是SQL2008 的协议),启用您的首选协议(我猜是 TCP/IP)并再次测试。

至于为什么它通常被禁用:

来自MSDN文章:

出于安全原因,默认情况下在 SQL Server Express 中禁用网络协议。可以手动或在安装 SQL Server Express 期间启用单个协议。


2. 启动 SQL Server 浏览器

转到:SQL Server 虚拟机上的 SQL Server 配置管理器,在SQL Server 服务下确保SQL Server Browser正在运行。

来自MSDN文章:

某些网络协议使用 SQL Server Browser 将命名实例与 TCP/IP 端口号相关联。但是,如果 SQL Server Express 与 MSDE 或 SQL Server 2000 的 SP3 之前版本安装在同一台计算机上,则可能会发生冲突。此外,SQL Server Browser 服务在安装后不会自动启动


3. 检查您的实例名称

如果您安装 SQL 2008 Express(或更高版本),Server 实例将被命名为 SQLExpress,因此要连接您需要指定 ServerName 和 InstanceName,即:

[VMServer\SQLExpress]
Run Code Online (Sandbox Code Playgroud)

4. 检查 SQL Server 上的连接

在服务器上的 SSMS 中右键单击服务器,转到连接并确保选中允许远程连接到此服务器


5. 基本网络检查

  1. 在您的服务器上创建一个文件夹,共享它并确保您可以从另一台机器上看到它。
  2. 尝试 telnet 到它
  3. netstat -ab

安全性
您可能会遇到身份验证问题,但这应该是将用户添加到 SQL Server 实例的直接问题。

注意:如果以上都不适合您,并且您找到了解决方案,请将您的解决方案添加到上面的列表中(也尝试帮助未来的用户)