【问题标题】:Not able to connect Azure SQL Database using SSMS无法使用 SSMS 连接 Azure SQL 数据库
【发布时间】:2019-02-20 09:42:51
【问题描述】:

我正在尝试使用 SSMS 连接 Azure SQL 数据库,但收到以下错误消息

发生网络相关或特定于实例的错误,同时 建立与 SQL Server 的连接。找不到服务器或 无法访问。验证实例名称是否正确,并且 SQL Server 配置为允许远程连接。 (提供者:命名 管道提供程序,错误:40 - 无法打开与 SQL Server 的连接) (Microsoft SQL Server,错误:53)

我们启用了所有必要的端口,还重新启动了 SQL 服务器,在 Azure 防火墙设置中添加了客户端“ip”。以前我们可以连接,但我们更改了 Azure SQL 服务器的位置,之后我们无法连接,但我可以连接到位于不同位置的另一台服务器。

【问题讨论】:

  • 是虚拟机上的sql server吗?
  • 防火墙阻止客户端的传出连接?
  • 您是在使用 Azure SQL 数据库还是在 Azure 中的 VM 上运行 SQL Server?无论哪种情况,这看起来都是网络连接问题。在问题客户端上运行此 powershell 命令以验证与远程 IP 和端口的低级别连接:powershell -Command echo ((new-object Net.Sockets.TcpClient).Client.Connect('your-azure-database-server.database.windows.net', 1433)) 'success'
  • 您无法重新启动 Azure SQL 数据库。如果您有 Azure SQL VM (IaaS),请告诉我们?
  • 您的数据库现在位于西欧吗?

标签: sql-server azure-sql-database


【解决方案1】:

我发现这篇文章: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 表示“未找到网络路径”。如果您收到此消息,则表示客户端堆栈找不到目标机器。

以下是此失败的可能原因:

一个。服务器名称中的拼写错误,或在服务器名称和实例名称之间使用“/”而不是“”,例如“myserver/myinst”不正确。

b.对服务器名称的名称解析不正确,“ping -a yourserver”会告诉您是否是这种情况。

c。服务器机器是防火墙的,文件共享不在例外列表中。您需要将“文件和打印机共享”放在异常中。

希望对你有帮助。

【讨论】:

    猜你喜欢
    • 2023-03-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-11-13
    相关资源
    最近更新 更多