无法通过IP和命名实例远程连接到SQL 2012

时间:2013-09-13 21:53:29

标签: sql sql-server windows sql-server-2012 windows-firewall

首先,我已经知道Windows防火墙阻止了我的连接 - 我只是不知道如何处理它。当我完全关闭WF时,我的远程连接正常工作。我已经有一个规则允许在端口1433传入请求,而且它似乎是正确的端口,但我不确定。现在了解更多细节。

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

在该框上运行的我的ASP.NET连接字符串工作正常并连接到sql12没有问题。这是混淆的连接字符串:

Server = myserver \ MSSQLSSERVER2012; Database = MyDB; User Id = Me;密码=为mypass;

看起来命名实例正在使用端口1433.我确认SQL浏览器处于活动状态并正在运行。我有一个Windows防火墙例外,允许sql服务器和端口1433,虽然之前有,我想知道这是否只适用于现在禁用的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
  4. 没有任何作用。总是错误是:

    enter image description here

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

    1. 启用SQL浏览器(完成)
    2. 在Windows防火墙中打开一个端口(好像已经完成??)
    3. 那么如何才能在Windows防火墙中发现我需要做些什么来解决这个问题呢?我无法完全关闭,这是一个公共网络服务器。

5 个答案:

答案 0 :(得分:10)

以下是SQL Server功能使用的端口列表。根据您使用的功能/服务,您可能需要打开TCP / UDP的其他端口。同样在服务器属性>连接>确认已选中允许与此服务器的远程连接。远程连接的说明是针对2008年的,因为你提到关闭防火墙,你可以远程连接然后我猜这不是必需的,但不会伤害双重检查。

Configure the Windows Firewall to Allow SQL Server Access

Enable Remote Connections

答案 1 :(得分:6)

简短的回答是:

  1. SQL Server默认实例使用TCP端口1433,除非搞乱(不要这样做!)。如果您只有一个默认实例,那么这是您需要的唯一端口,我相信 - SQL Server客户端不使用浏览器服务来查找默认实例。
  2. 如果使用了命名实例,则SQL Browser会起作用。这将侦听UDP端口1434;它响应命名实例的端口号请求。
  3. 默认情况下,命名实例使用动态TCP端口 - 因此每次启动时都会使用不同的端口。浏览器为您排序,但通过防火墙很痛苦。
  4. 没有理由不在SQL Server配置管理器中为命名实例(例如,TCP端口1434或其他)设置固定端口,这样您只需要为命名实例打开一个额外端口。 / LI>

答案 2 :(得分:3)

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

您可以重现:

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

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

您需要打开端口1434 UDP并启动SQL浏览器,现在它可以正常工作。

答案 3 :(得分:1)

以下一个或多个问题解决了这个问题,并使我能够连接远程sql服务器:

  1. 允许mssql属性中的远程连接
  2. 在winfirewall中启用MSSQL exe
  3. 在winfirewall中启用SQL浏览器
  4. 明确打开端口1433 tcp和1434 udp
  5. 作为服务运行的SQL浏览器
  6. 这对我有用:)

答案 4 :(得分:0)

如果您已尝试上述所有内容并且仍然遇到该错误 - 请尝试将IP和实例名称添加到您要连接的服务器的主机文件中,如下所示:

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

在经过开放端口,UDP,TCP / IP等的DAYS之后,这对我有用。我能够使用连接字符串与IP连接,但从不使用实例名称本身。确认登录信息正确,SQL Browser已启用并正在运行。我希望这会有所帮助。