Pymssql无法连接到Amazon Linux 2上的Azure SQL Server

问题描述 投票:0回答:1

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

我有一个使用pymssql(2.1.4)与Azure SQL Server通讯的python(3.7)脚本。这在我的本地macOS机器上可以正常工作。当我尝试将其部署到运行Amazon Linux 2的EC2计算机上时,问题就来了。当我尝试连接时,我得到:

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无法连接。我使用的是相同的凭据。

任何建议都将不胜感激。

sql-server azure amazon-ec2 database-connection pymssql
1个回答
0
投票

我放弃了,改用pyodbc,这似乎行得通。显然,不再支持pymssql,因此无论如何都最好使用pyodbc。

© www.soinside.com 2019 - 2024. All rights reserved.