Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server SQL Server 2012无法使用ssms远程连接到命名实例_Sql Server_Database Connection - Fatal编程技术网

Sql server SQL Server 2012无法使用ssms远程连接到命名实例

Sql server SQL Server 2012无法使用ssms远程连接到命名实例,sql-server,database-connection,Sql Server,Database Connection,我正在Microsoft Windows Server 2012 R2上运行SQL Server 2012。我正在运行一个名为PP的命名实例。服务器身份验证设置为“SQL server和Windows身份验证模式” 当我通过远程桌面登录到服务器时,我可以使用SQL server用户名和密码通过SSMS登录到指定实例。当我尝试使用相同的用户名和密码远程登录到命名实例时,我会收到一个错误,如本截图所述(我的声誉不高,无法将截图直接粘贴到我的帖子中,请点击链接): 以下是我到目前为止检查过的内容:

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

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

以下是我到目前为止检查过的内容:

  • 我可以从本地计算机ping远程服务器的IP地址并获得成功响应
  • 我已将SQL Server实例配置为接受远程连接,如本文所述
  • 在远程服务器上的SQL Server Configuration Manager中,根据命名实例的协议,我启用了“共享内存”、“命名管道”和“TCP/IP”
  • 在SQL server Configuration Manager中远程服务器的“TCP/IP”属性下,在“IP2”部分的“IP地址”选项卡中,我已将“TCP动态端口”值设置为空。我已尝试将“TCP端口”值设置为1433,然后设置为1434(常规实例和命名实例之间的差异),并按照屏幕截图所示完成以下其余步骤(这些是我在上面链接的文章中指定的值)
  • Windows防火墙没有在远程服务器上运行,从我所看到的情况来看,远程服务器上也没有运行其他防火墙
  • 远程服务器上的SQL Server Browser服务已停止并重新启动
  • 完成所有这些更改并验证所有这些设置后,远程服务器上命名实例的SQL Server服务已停止并重新启动
    在所有这些之后,当我试图通过SSMS从本地计算机连接到远程服务器上的SQL Server命名实例时,仍然会收到我的原始错误。我一直在到处搜索,找不到任何其他故障排除步骤来诊断此问题。有人能告诉我下一步应该采取什么措施来解决这个问题吗?提前感谢。

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

    我注销,然后第二天回来执行@Andrey Nikolov回答中的建议,出于某种原因,我现在可以远程连接到指定实例。命名实例的“TCP/IP”配置的“IP2”部分的设置是“TCP动态端口”值设置为空,“TCP端口”设置为1433。我没有做任何其他的改变。其余配置如我在OP中所述。我有此服务器的系统管理员权限,但我不是实际的管理员,因此我猜实际管理员可能在我注销和重新登录之间更改了其他内容,但我不知道这可能是什么。感谢@Andrey Nikolov的支持

    编辑: 几天后,这个问题又完全生效了,原因我无法确定。经过长时间的搜索,我发现了一个非常有用的MS文档,它详细介绍了整个故障排除过程,希望这能帮助其他人解决这个问题。以下是链接:

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

    端口1434不是“命名实例”,但SQL Browser服务侦听此端口,并将告诉您命名实例工作的实际端口。