无法连接到 VM 外部的 SQL Server 2012 Express 实例

tcb*_*zil 3 windows hyper-v sql-server

我正在尝试使用 Sql Server Management Studio 从我的 VM 连接到位于我的主机中的 SqlServer 实例。

从我的主机,我可以使用 SSMS 连接到两个 SQL 实例,但是当我尝试从 VM 连接到主机实例时,SMSS 给出此错误消息(我的在 PT-BR 中):

在此处输入图片说明

我的环境是这样的:蓝色虚线块代表我的主机(PC_MASTER),橙色虚线块代表我的VM(MYVM):

在此处输入图片说明

以下是每台机器的主要组件:

PC-MASTER(主机): Windows 8 PRO-English w/ SQL Server 2012 Express。SQL 实例名称是“ PC-MASTER\SQLEXPRESS ”。

MyVM (VM): Windows Server 2012 BR-葡萄牙语,带有 SQL Server 2012 标准版。SQL 实例名称是“ MYVM ”。

防火墙:主机有一个入站规则,为所有程序/服务打开 1433/1434 TCP 端口;

SQL 协议:在两台服务器中,所有 3 个主要协议都处于开启状态,顺序如下:共享内存、TCP/IP 和命名管道;

远程访问:两个 SQL 服务器都配置为允许远程连接;

SQL 配置:正如 Somantra 指出的那样,主机 SQL 配置为仅允许通过端口 1433 进行静态访问。

从我的虚拟机(MYVM):

  • 我只能连接到本地 SQL 实例。
  • 我可以使用其 IP 或名称成功 ping 主机;
  • 我无法使用 telnet 连接到主机:我尝试了端口 21、23、80、1433 和 1434。

太棒了!

Mar*_*son 5

所以我花了几分钟查看这个问题的所有重复项,有一些,但说实话,他们的答案都很糟糕,所以我们开始:

端口 1433 仅适用于 SQL Server 的默认实例。如果您要连接到命名实例,您有两个选择:

  1. 使用SERVER\INSTANCE名称并打开端口 1434(用于 SQL 浏览器)和 SQL Server 实例的端口(稍后会详细介绍)
  2. 使用SQL Server 实例的端口SERVER:port在哪里port

要确定 SQL Server 实例在 SQL Server 配置管理器中运行的端口,请在网络配置 > TCP/IP > IP 地址下:

在此处输入图片说明

因此,对于#1,我需要打开1434 和64670,对于#2,我只需要打开64670,但使用不同的SQL 连接字符串。