gpt4 book ai didi

python - pymssql:与数据库的连接有时有效

转载 作者:太空狗 更新时间:2023-10-30 01:00:46 28 4
gpt4 key购买 nike

我正在尝试使用 Python 的 pymssql 连接到 Azure SQL 服务器。问题是以下脚本可以工作,但只是有时有效,其他时候我会收到此错误:

_mssql.MSSQLDatabaseException: (20002, b'DB-Lib error message 20002, severity 9:\nAdaptive Server connection failed\n')

这是我正在使用的脚本:

import pymssql
conn = pymssql.connect(server='x', user='x', password='x', database='x')
cursor = conn.cursor()
cursor.execute('SELECT * FROM customers');
row = cursor.fetchone()
while row:
print (str(row[0]) + " " + str(row[1]) + " " + str(row[2]))
row = cursor.fetchone()

如果有人能告诉我为什么上面的脚本有时有效,而其他时候却出现“Adaptive Server 连接失败”错误,这对我会有很大帮助。

最佳答案

我回顾了这些旧线程 Read from the server failed when trying to connect to sql-azure from tsqlWhat is TDS Protocol Version 8.0 and why should I use it? 。该问题似乎是由于使用了错误版本的 FreeTDS 引起的。

我在FreeTDS官网http://www.freetds.org/faq.html#Does.FreeTDS.support.Microsoft.servers页面找到了 key .

有一个按产品列出的 TDS 协议(protocol)版本表 http://www.freetds.org/userguide/choosingtdsprotocol.htm .

enter image description here

出于向后兼容性的原因,FreeTDS 会将此版本别名为 7.1,但出于 future 兼容性问题,应避免这种情况。请参阅下面有关过时版本的注释。

如果您在Linux上将pymssql与FreeTDS一起使用,我认为您需要检查/etc/freetds/路径下的配置文件“freetds.conf”。

下面是我的 Azure SQL Server 配置:

# A typical Microsoft server
[egServer70]
host = <database_name>.database.windows.net
port = 1433
tds version = 7.3

您可以尝试使用 freetds 工具“tsql”命令“tsql -H <database_name>.database.windows.net -U Username -D DatabaseName -p 1433 -P Password”来测试与 Azure SQL Server 的连接。 ' 。

最诚挚的问候。

关于python - pymssql:与数据库的连接有时有效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32380367/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com