在过去四年中,我们一直在从共享 Linux 主机到 MS SQL 数据库建立 ODBC 连接,并且运行良好。上周末突然停了。不幸的是,这是有史以来最糟糕的时机。
我们正在使用 freeTDS 进行 odbc 连接,并且我们已将 TDS 版本更新为 auto,因为我们一直在使用 8.0,而且我知道版本号已更改。我们正在使用用户级 .odbc.ini 并尝试了我们能想到的所有变体,但仍然收到此错误:
[unixODBC][FreeTDS][SQL Server]无法连接到数据源
[myredactedDNSname]
Driver = /usr/lib64/libtdsodbc.so
Server = [redacted]
Port = [not 1433, a special port]
TDS Version = auto
Database = [my db name]
连接字符串采用 PHP 格式,并且是
$conn = new PDO("odbc:myredactedDNSname", $username, $password)
服务器正在运行 freetds v1.4.16(如果重要的话还可以是 PHP 8x)。
关于我还应该尝试什么的任何想法?
我找到了答案,它根本没有意义,但它有效。
我只是[在阳光下测试了 20 个小时之后]必须在我的 .odbc.ini 中使用它:
TDS_版本 = 7.0
我们之前将其设置为 8.0 并期望“自动”能够工作,但在我们的共享服务器上使用版本 freetds v1.4.16 时,它却不起作用。
我们正在连接到 SQLserver 2016,因此 7.0 不应该是有效的 TDS_version,但它确实有效。