我正在尝试使用SSMS与Azure SQL数据库连接,但是我收到了以下错误消息
与网络相关或特定于实例的错误发生在 建立与SQL Server的连接。找不到服务器或 无法访问。验证实例名称正确,并且 SQL Server配置为允许远程连接。 (提供者:命名 管道提供程序,错误:40-无法打开与SQL Server的连接) (Microsoft SQL Server,错误:53)
我们启用了所有必需的端口,还重新启动了SQL Server,并在Azure防火墙设置中添加了客户端“ ip”。以前我们可以连接,但是在我们无法连接之后更改了Azure SQL服务器的位置,但是我可以连接到位于不同位置的另一台服务器。
答案 0 :(得分:0)
我发现了这篇文章:Named Pipes Provider, error: 40 – Could not open a connection to SQL Server (Microsoft SQL Server, Error: XXX)可能会给您一些有用的信息。
基本上,此错误消息只是告诉您客户端无法建立与服务器的连接。它等效于MDAC中的“ SQL Server不存在或访问被拒绝”。尽管错误消息中提到了命名管道提供者,但问题不一定与NP有关。原因是,默认情况下,客户端堆栈按顺序尝试TCP和NP。如果连接尝试都无法成功,则NP是最后尝试的协议,这是向用户显示的错误消息。
当用户看到此错误消息时,有时会省略xxx。但是实际上,xxx是此错误消息中最重要的部分。 xxx是Windows错误代码,它为客户提供有关连接失败原因的提示。这是用户经常看到的一些错误代码。我还在这里解释根本原因和可能的解决方案。
1)xxx = 53
winerr 53的意思是“找不到网络路径”。如果收到此消息,则表示客户端堆栈找不到目标计算机。
以下是导致此失败的原因:
a。服务器名称中有错字,或者在服务器名称和实例名称之间使用“ /”而不是“”,例如“ myserver / myinst”不正确。
b。服务器名称的名称解析不正确,“ ping -a yourserver”会告诉您情况是否正确。
c。服务器计算机经过防火墙保护,文件共享不在例外列表中。您需要将“文件和打印机共享”设置为例外。
希望这可以为您提供帮助。