5

首先,我已经知道 Windows 防火墙阻止了我的连接——我只是不知道该怎么办。当我完全关闭 WF 时,我的远程连接工作。我已经有一个规则允许在端口 1433 传入请求,而且这似乎是正确的端口,但我不确定。现在了解更多详情。

我的远程专用服务器上有 SQL Server 2008 R2,通过 SSMS 远程连接没有问题。但后来我安装了 SQL Server 2012。它工作正常,但在安装过程中我被迫为它创建一个命名实例,因为 SQL08 正在使用默认实例。

我在那个盒子上运行的 ASP.NET 连接字符串工作正常,可以毫无问题地连接到 sql12。这是混淆的连接字符串:

服务器=myserver\MSSQLSSERVER2012;数据库=MyDB;用户ID=我;密码=我的密码;

看起来命名实例正在使用端口 1433。我确认 SQL Browser 处于活动状态并且正在运行。我有一个允许 sql server 和端口 1433 的 Windows 防火墙异常,尽管以前就存在,我想知道这是否仅适用于现在禁用的 SQL08(我如何确保这适用于 SQL12)。

假设该服务器的 IP 是 1.2.3.4

从SSMS我尝试连接到服务器:

  1. 1.2.3.4
  2. 1.2.3.4\MSSQLSSERVER2012
  3. 1.2.3.4\MSSQLSSERVER2012,1433

没有任何效果。总是错误是:

在此处输入图像描述

我已经阅读了许多关于这个主题的文章,他们都说:

  1. 启用 SQL 浏览器(完成)
  2. 在 Windows 防火墙中打开一个端口(似乎完成了??)

那么我怎样才能发现我需要在 Windows 防火墙中做什么来解决这个问题呢?我无法关闭所有功能,这是一个公共网络服务器。

4

5 回答 5

10

以下是 SQL Server 功能使用的端口列表。根据您使用的功能/服务,您可能需要打开额外的 TCP/UDP 端口。同样在服务器属性 > 连接 > 确认允许远程连接到该服务器被选中。远程连接的说明是针对 2008 年的,因为您提到关闭防火墙以使您能够远程连接,那么我猜这不是必需的,但仔细检查一下也无妨。

将 Windows 防火墙配置为允许 SQL Server 访问

启用远程连接

于 2013-09-14T02:27:55.343 回答
7

一个简短的回答是:

  1. SQL Server 默认实例使用 TCP 端口 1433,除非搞砸了(不要这样做!)。如果您只有一个默认实例,那是您需要的唯一端口,我相信 - SQL Server 客户端不使用浏览器服务来查找默认实例。
  2. 如果使用命名实例,SQL 浏览器就会发挥作用。这会监听 UDP 端口 1434;它响应命名实例的端口号请求。
  3. 默认情况下,命名实例使用动态 TCP 端口 - 因此每次启动时使用不同的端口。浏览器会为您解决这个问题,但通过防火墙会很痛苦。
  4. 没有理由不应该在 SQL Server 配置管理器中为命名实例设置固定端口(例如,TCP 端口 1434 或其他),以便只需要为命名实例打开一个额外的端口。
于 2013-10-09T10:04:02.863 回答
3

如果使用命名实例,添加端口 1433 是不够的。

你可以重现这个:

  • 安装命名实例
  • 添加入站规则 1433
  • 允许远程连接

当您尝试连接时,您会收到无法找到服务器的错误。当您关闭防火墙时,一切正常,因此必须有另一个端口才能使其正常工作。

您需要打开端口 1434 UDP 并启动 SQL Browser,现在它可以工作了。

于 2015-07-19T11:09:27.843 回答
1

以下一项或多项解决了该问题并使我能够连接到我的远程 sql 服务器:

  1. 在 mssql 属性中允许远程连接
  2. 在 winfirewall 中启用 MSSQL exe
  3. 在 winfirewall 中启用 SQL 浏览器
  4. 显式打开端口 1433 tcp 和 1434 udp
  5. 作为服务运行的 SQL 浏览器

这对我有用:)

于 2015-08-05T19:48:15.097 回答
0

如果您已尝试上述所有方法,但仍然出现该错误 - 尝试将 IP 和实例名称添加到您正在连接的服务器的主机文件中,如下所示:

111.11.111.1111 INSTANCENAME #IP 和连接到的服务器的实例名称

经过几天打开端口、UDP、TCP/IP 等之后,这对我有用。我能够使用带有 IP 的连接字符串进行连接,但不能使用实例名称本身。确认登录信息正确,SQL 浏览器已启用并正在运行。我希望这有帮助。

于 2015-08-07T15:51:23.420 回答