【问题标题】:Accessing Host SQL Server From VMWare Machines从 VMWare 机器访问主机 SQL Server
【发布时间】:2014-02-09 15:31:49
【问题描述】:

我有 Windows 7,上面装有 SQL Server 2008 和 SQL Express 2012。我还在两台 vmware 机器上安装了 win xp。我正在尽力使用管理工作室从 vm 机器连接到主机上的 sql server,但没有运气。我什至在 ping 主机时遇到问题,反之亦然。当我关闭防火墙时,我能够 ping 主机。我尝试添加 vm 机器的 IP 以允许访问主机,但即使这样也没有用。

我从这里添加了一个自定义规则 http://www.rackspace.com/knowledge_center/article/creating-an-inbound-custom-allow-rule-for-windows-firewall-windows-2008

我正在运行我关闭的热点盾,但仍然没有运气。我已经允许在我的 sql server 上进行远程连接。但仍然无法正常工作。有人可以在这里帮忙。

这是我得到的错误。

这里是虚拟机的设置。

防火墙开启时,无法ping通,但关闭时可以ping通。

问候

帕米德

【问题讨论】:

  • 尝试连接时遇到什么错误?您是通过名称还是通过 IP 在 SSMS 中连接?
  • 我已经更新了这个问题。非常感谢。

标签: sql-server virtual-machine vmware-workstation


【解决方案1】:

这直接来自 MSDN 博客关于网络错误 26。Details here

1) 确保您的服务器名称正确,例如,名称没有错字。
2)确保您的实例名称正确,并且您的目标机器上确实有这样的实例。 [更新:某些应用程序将 \\ 转换为 \ 如果您不确定您的应用程序,请尝试连接字符串中的 Server\Instance 和 Server\\Instance ]
3) 确保服务器机器可访问,例如,DNS 可以正确解析,您可以 ping 服务器(并非总是如此)。
4) 确保 SQL Browser 服务正在服务器上运行。
5) 如果服务器启用了防火墙,则需要将 sqlbrowser.exe 和/或 UDP 端口 1434 置于异常中。

如果仍然失败,您可能需要运行 PortQry。

您可以从应用程序herehere 详细信息下载PortQry,运行“portqry.exe -n yourservername -p UDP -e 1434”。如果此命令返回信息并且它包含您的目标实例,那么您可以排除上述 4) 和 5) 的可能性,这意味着您确实运行了 SQL Browser,并且您的防火墙不会阻止 SQL Browser UDP 数据包。在这种情况下,您可以检查其他问题,例如错误的连接字符串。

【讨论】:

  • 谢谢伙计。我安装了它。它将IP地址解析为我的笔记本电脑名称,并说端口已过滤。这是什么意思?
  • Make sure SQL Browser service is running on the server. 。救生员...谢谢! :)
  • SQL 浏览器运行成功了。还有一个小的更正:您需要 1434 上的任何端口(不仅仅是 UDP),以便防火墙中的 SQL 浏览器允许。
【解决方案2】:

您需要配置 SQL Server 以侦听 TCP 协议。为此,请单击开始 |所有程序 |微软 SQL Server 2012 |配置工具并打开 SQL Server 配置管理器。

  1. 在 SQL Server 配置管理器中,展开 SQL Server 网络 控制台窗格中的配置。
  2. 单击协议作为实例名称。 (默认实例是 MSSQLSERVER 的协议)。
  3. 在详细信息窗格中,右键单击 TCP,它应该为启用 默认情况下图库图像。对于您的自定义图像,单击启用(如果 其状态为已禁用。)
  4. 右键单击 TCP/IP 并选择属性。
  5. 确认在 IP2 下,IP 地址设置为计算机的 IP 本地子网上的地址。
  6. 确保 TCP 动态端口为空白。
  7. 确保 TCP 端口设置为 1433。
  8. 在详细信息窗格中,右键单击 SQL Server(实例名称)( 默认实例是 SQL Server (MSSQLSERVER),然后单击 重新启动,停止并重新启动 SQL Server 实例。

然后,您需要在 Windows 防火墙中为数据库引擎的默认实例打开 TCP 端口。为此,请单击开始 |所有程序 |管理工具,然后打开具有高级安全性的 Windows 防火墙。

  1. 在具有高级安全性的 Windows 防火墙的左窗格中, 右键单击入站规则,然后单击操作中的新建规则 窗格。
  2. 在“规则类型”对话框中,选择“端口”,然后单击“下一步”
  3. 在“协议和端口”对话框中,选择 TCP。选择特定 本地端口,然后键入实例的端口号 数据库引擎(默认实例为 1433)。点击下一步。
  4. 在“操作”对话框中,选择“允许连接”,然后 点击下一步。
  5. 在配置文件对话框中,选择域、私有、公共,然后 点击下一步。
  6. 在“名称”页面中,将入站规则的名称设置为 SQLServerPort,然后 单击完成。关闭具有高级安全性的 Windows 防火墙窗口。

希望对您有所帮助。 最好的问候

【讨论】:

    【解决方案3】:

    请注意,如果您正在运行 SQLExpress,则在应用 octavioccl 的comment 中的步骤后,它可能仍然无法工作。 为我解决的问题是用 SQL Server Developer 2019 替换我的 SQLExpress 2019,应用提到的 SQL 网络配置和防火墙设置,然后我终于能够仅使用主机名连接到主机的 SQL 服务器,没有 IP 和端口。

    【讨论】:

      猜你喜欢
      • 2013-10-20
      • 2010-11-21
      • 2014-10-11
      • 2014-11-02
      • 2021-08-03
      • 1970-01-01
      • 1970-01-01
      • 2016-10-16
      • 2010-09-25
      相关资源
      最近更新 更多