无法使用 FreeTDS 连接到 Azure SQL

Can't connect to Azure SQL with FreeTDS

我已经在网上搜索了 6 个小时,但仍然没有搞清楚。如果您有重复的问题 link,我会洗耳恭听,但我可能已经看过了:/

我正在尝试通过我的 LAMP 堆栈连接到我的 Azure SQL 实例,但它没有发生,我不确定为什么。

我已经使用 openssl 编译并安装了 FreeTDS,安装了 php5-sybaseunixodbctdsodbcphp5-odbc

FreeTDS 名称查找工作正常,但与服务器的实际连接不工作。我遇到了非常普遍的 20009 Adaptive Server is unavailable 错误。

我也已将我的 IP 添加到 Azure 门户中的允许 IP 列表中。我已经尝试了 TDS 版本 7.0、7.1、7.2 和 7.3 以及带有 encryption = off|request|require.

的每个排列

我已经尝试连接到 freeTDS 名称、DNS 名称和直接 IP 地址。我试过指定端口以及将其关闭。我已确认没有本地防火墙。

这是我在 tsql 中看到的(以及 PHP 中同样的最终错误):

locale is "en_US.UTF-8"
locale charset is "UTF-8"
using default charset "UTF-8"
Setting MyDatabase as default database in login packet
14> Error 20009 (severity 9):
    Unable to connect: Adaptive Server is unavailable or does not exist
There was a problem connecting to the server

这是我的 freetds.conf:

[BlueRavenSolar]
    host = myserver.database.windows.net
    port = 1443
    tds version = 7.3
    encryption = request

tsql -C的输出:

Compile-time settings (established with the "configure" script)
                        Version: freetds v0.95.89
         freetds.conf directory: /usr/local/etc
 MS db-lib source compatibility: yes
    Sybase binary compatibility: no
                  Thread safety: yes
                  iconv library: yes
                    TDS version: 5.0
                          iODBC: no
                       unixodbc: no
          SSPI "trusted" logins: no
                       Kerberos: no
                        OpenSSL: yes
                         GnuTLS: no

您是否更改了 Azure SQL 的端口,因为您 freetds.conf 中的端口是 1443,而 Azure SQL 的默认端口应该是 1433。那你能不能试试修改成1433再试试?