【问题标题】:SQL Server 2012 not able to connect to named instance remotely with ssmsSQL Server 2012 无法使用 ssms 远程连接到命名实例
【发布时间】:2018-11-24 05:37:21
【问题描述】:

我在 Microsoft Windows Server 2012 R2 上运行 SQL Server 2012。我正在运行一个名为PP 的命名实例。服务器身份验证设置为“SQL Server 和 Windows 身份验证模式”。

当我通过远程桌面登录到服务器时,我可以使用 SQL Server 用户名和密码通过 SSMS 登录到命名实例。当我尝试使用相同的用户名和密码远程登录命名实例时,我收到此屏幕截图中描述的错误(我的声誉不够高,无法将屏幕截图直接粘贴到我的帖子中,请点击链接):

以下是我目前检查的内容:

  1. 我可以从本地计算机 ping 远程服务器的 IP 地址并获得成功的响应。
  2. 我已将 SQL Server 实例配置为接受远程连接,如 article 中所述。
  3. 在远程服务器上的 SQL Server 配置管理器中,根据我的命名实例的协议,我启用了“共享内存”、“命名管道”和“TCP/IP”。
  4. 在“IP2”部分下的“IP 地址”选项卡的 SQL Server 配置管理器中远程服务器的“TCP/IP”属性下,我已将“TCP 动态端口”值设置为空白。我尝试将“TCP 端口”值设置为 1433,然后设置为 1434(常规实例和命名实例之间的差异),并按照屏幕截图here 中所示执行以下其余步骤(这些是值在我上面链接的文章中指定)
  5. Windows 防火墙未在远程服务器上运行,据我所知,远程服务器上也没有运行其他防火墙。
  6. 远程服务器上的 SQL Server Browser 服务已停止并重新启动。
  7. 在我完成所有这些更改并验证所有这些设置后,远程服务器上命名实例的 SQL Server 服务已停止并重新启动。

在所有这些之后,当我尝试通过 SSMS 从本地计算机连接到远程服务器上的 SQL Server 命名实例时,我仍然收到原始错误。我一直在寻找高低,找不到任何额外的故障排除步骤来诊断这个问题。有人能指出我应该采取的下一步解决方案的方向吗?提前致谢。

【问题讨论】:

  • 端口 1434 不是“命名实例”,但 SQL Browser 服务会在此端口上进行侦听,并会告诉您命名实例工作的真实端口。

标签: sql-server database-connection


【解决方案1】:

我注销然后第二天回来实施@Andrey Nikolov 回答中的建议,由于某种原因,我现在能够远程连接到命名实例。最终适用于命名实例的“TCP/IP”配置的“IP2”部分的设置是“TCP 动态端口”值设置为空白,“TCP 端口”设置为 1433。我没有t 进行任何其他更改。其余配置如我在我的 OP 中所述。我有对该服务器的系统管理员访问权限,但我不是实际的管理员,所以我想实际的管理员可能在我注销然后重新登录之间更改了其他内容,但我不知道那可能是什么。感谢@Andrey Nikolov 的意见。

编辑: 几天后,这个问题又完全恢复了,我无法确定。经过长时间的搜索,我找到了一个非常有用的 MS Doc,它深入了解了整个故障排除过程,希望这可以帮助其他遇到这个问题的人。这是链接:

https://docs.microsoft.com/en-us/sql/database-engine/configure-windows/troubleshoot-connecting-to-the-sql-server-database-engine?view=sql-server-2017

它说它适用于 SQL Server 2017,但我能够按照它来修复我的 SQL Server 2012 问题。对于我的情况,事实证明,因为我的服务器上有 2 个单独的 MS SQL 实例,初始实例使用的是其他地方描述的所有默认设置,而我尝试连接的实例使用的是完全不同的端口。使用此文档,我能够找出我的实例正在使用的端口,并在我尝试连接时在 SSMS 的“服务器名称”框中指定该端口。现在它就像一个魅力。

【讨论】:

    【解决方案2】:

    我认为您的命名实例 TCP/IP 配置不正确。如果您在本地连接,它不会使用 TCP/IP 连接,而是使用共享内存。您将实例设置为侦听端口 1434,但此端口由 SQL Browser 服务使用,并且很可能 SQL Server 引擎服务无法打开该端口(您可以通过在日志中查找错误来确认)。要使其正常工作,您应该将 IP2 -> TCP 动态端口设置为 0 并清除 IP2 -> TCP 端口。像这样配置,您的命名实例将使用动态端口。如果要配置它使用特定端口,请将 IP2 -> TCP Port 中的 1434 替换为 available 端口号。

    【讨论】:

      猜你喜欢
      • 2015-07-03
      • 2011-10-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多