Pymssql 写入服务器失败 - 20006

Pymssql Write to the server failed - 20006

我正在使用 pymssql=2.1.1 从 python 连接 Azure 数据库。由于几分钟的空闲连接,我收到错误消息(写入服务器失败)并且无法获取数据。

我正在使用 pymssql 的连接方法创建到 Azure 数据库的连接。

conn = pymssql.connect(server=v_host, user=v_user, password=v_passwd, database=v_db)
cursor = self.conn.cursor(as_dict=True)
cursor.execute(query)

错误看起来像 (20006,b'DB-Lib 错误消息 20006,严重性 9:\n在连接重置期间写入服务器 failed\nNet-Lib 错误(104)\n')

如果您希望我们 pymssql 连接到 Azure SQL 数据库,请确保满足以下要求:

示例:

import pymssql
conn=pymssql.connect("xxx.database.windows.net", "username@xxx", "password", "db_name")
cursor = conn.cursor()
cursor.execute(query)

详情请见:Connecting to Azure SQL Database. Starting with version 2.1.1 pymssql can be used to connect to Microsoft Azure SQL Database. And you can troubleshoot the error by pymssql Frequently asked questions.

另一种方法,您也可以尝试 pyodbc 示例:

import pyodbc
server = '<server>.database.windows.net'
database = '<database>'
username = '<username>'
password = '<password>'
driver= '{ODBC Driver 17 for SQL Server}'
cnxn = pyodbc.connect('DRIVER='+driver+';SERVER='+server+';PORT=1433;DATABASE='+database+';UID='+username+';PWD='+ password)
cursor = cnxn.cursor()
cursor.execute(query)

这是 Azure 文档:Quickstart: Use Python to query an Azure SQL database

希望对您有所帮助。