【问题标题】:Pymssql Write to the server failed - 20006Pymssql 写入服务器失败 - 20006
【发布时间】:2019-11-04 01:29:20
【问题描述】:

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

我正在使用 pymssql 的 connect 方法来创建与 Azure DB 的连接。

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写入服务器失败\nNet-Lib 在连接重置期间由对等方(104)出错\n')

【问题讨论】:

    标签: sql-server azure pymssql


    【解决方案1】:

    如果您希望我们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。从 2.1.1 版开始,pymssql 可用于连接到 Microsoft Azure SQL 数据库。并且可以通过pymssqlFrequently 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

    希望这会有所帮助。

    【讨论】:

    • 当连接空闲几分钟时,我有时会遇到问题。现在我将其更改为 pyodbc ,似乎问题已解决。感谢您的 pyodbc 解决方案。
    • @Bhautik 不客气。如果我的回答对您有帮助,您可以接受它作为答案(单击答案旁边的复选标记,将其从灰色切换为已填充。)。这对其他社区成员可能是有益的。谢谢。
    猜你喜欢
    • 1970-01-01
    • 2019-02-23
    • 1970-01-01
    • 2011-12-21
    • 1970-01-01
    • 1970-01-01
    • 2019-08-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多