无法通过 SQL 服务器和 SQL 本机客户端的 ODBC 驱动程序 11 连接到 Azure 数据库

Cannot Connect to Azure Database through ODBC Driver 11 for SQL Server and SQL Native Client

我可以通过 SQL Server 2014 轻松访问 Azure SQL 数据库,但是 当我尝试通过 SQL 服务器的 ODBC 驱动程序 11 将我的 PHP(Laravel) Web 应用程序连接到 Azure SQL 服务器时,还尝试使用 SQL 本机客户端 11,它给我不同类型的异常,如下所示

我已经浏览了这个 Technet Article 并成功完成了所有步骤,直到第 3 步。

但是当我跟踪到服务器时,它给我以下结果

所以,我面临的问题是由于我收到请求超时的原因。并且我已经配置了服务器防火墙并添加了客户端ip。

我想你可以参考这篇文章A transport-level error has occurred when receiving results from the server。人们得到了同样的错误。

可能的解决方案是

1) 检查该链接服务器的提供商。

2) 为该特定提供商启用 "Allow inprocess" 选项以修复提供商属性中的问题。

3) 对于连接字符串中的 'Packet Size=xxxxx',请尝试使 'xxxxx' 更短。

4) 尝试在网络接口上禁用 "IP Offloading"。

5) 重新启动 Virtual Stdio。

6) 停止 IIS Express 并重新运行您的应用程序。

希望对您有所帮助。

我有一个利用 odbc_connect 的快速测试,例如:

odbc_connect("Driver={SQL Server Native Client 11.0};Server=tcp:<sqlsrv_name>.database.windows.net,1433;Database=<database>;Uid=<user>@<sqlsrv_name>;Pwd=<password>;Encrypt=yes;Connection Timeout=30;", "<user>@<sqlsrv_name>", "<password>");

但是我无法重现您的问题。您能否创建一个新的 Azure SQL 服务器,并尝试从您的本地脚本连接到这个新服务器?

如果您仍然出现此问题,则您的本地环境可能存在问题。您可以检查您的网络,因为您的日志显示超时异常。

已解决此问题。

问题出在我选择的计划上,它不足以满足我的需要。

我选择了更高配置的计划,幸运的是它成功了。