Pymssql 无法连接到 Azure SQL Amazon Linux 上的服务器 2

Pymssql won't connect to Azure SQL Server on Amazon Linux 2

我知道以前有人问过这个问题,但我已经尝试了所有可以在网上找到的建议,但我仍然感到困惑。

我有一个 python (3.7) 脚本,它使用 pymssql (2.1.4) 与 Azure SQL 服务器通信。这在我的本地 macOS 机器上运行良好。当我尝试将它部署到 EC2 机器时,问题就来了 运行ning Amazon Linux 2. 当我尝试连接时,我得到:

self.conn = pymssql.connect(server=DBHelper.server, user=DBHelper.user, password=DBHelper.password, database=DBHelper.db)
  File "src/pymssql.pyx", line 642, in pymssql.connect
pymssql.OperationalError: (20002, b'DB-Lib error message 20002, severity 9:\nAdaptive Server connection failed (myservername.database.windows.net:1433)\n')

这是 FreeTDS 日志的内容:

net.c:226:Connecting to 40.121.158.30 port 1433 (TDS version 7.1)
net.c:252:tds_open_socket: connect(2) returned "Operation now in progress"
net.c:372:tds_open_socket() succeeded
packet.c:742:Sending packet
0000 12 01 00 34 00 00 00 00-00 00 15 00 06 01 00 1b |...4.... ........|
0010 00 01 02 00 1c 00 0c 03-00 28 00 04 ff 08 00 01 |........ .(......|
0020 55 00 00 02 4d 53 53 51-4c 53 65 72 76 65 72 00 |U...MSSQ LServer.|
0030 a8 19 00 00            -                        |....|

packet.c:640:Received packet
0000 04 01 00 25 00 00 01 00-00 00 15 00 06 01 00 1b |...%.... ........|
0010 00 01 02 00 1c 00 01 03-00 1d 00 00 ff 0c 00 07 |........ ........|
0020 6c 00 00 03 00         -                        |l....|

login.c:1216:detected flag 3
login.c:534:login packet rejected
query.c:3797:tds_disconnect()

问题是,我可以使用命令行工具 tsql 登录并 运行 查询,这很好。只是来自 python 连接不上。我正在使用相同的凭据。

如有任何建议,我们将不胜感激。

我放弃了,转而使用 pyodbc,这似乎奏效了。显然,不再支持 pymssql,因此最好还是使用 pyodbc。