Pymssql Ошибка записи на сервер - 20006

Я использую pymssql = 2.1.1 для подключения базы данных Azure из python. Из-за простоя соединения в течение нескольких минут я получаю сообщение об ошибке (Ошибка записи на сервер) и не могу получить данные.

Я использую метод подключения 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Записать на сервер не удалось \ nОшибка Net-Lib во время сброса соединения одноранговым узлом (104) \ n ')


person Bhautik    schedule 21.06.2019    source источник


Ответы (1)


Если вы хотите, чтобы мы pymssql подключились к базе данных Azure SQL, убедитесь, что выполняются следующие требования: введите описание изображения здесь

Примеры:

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

Для получения дополнительных сведений см. Подключение к Azure База данных SQL. Начиная с версии 2.1.1 pymssql можно использовать для подключения к базе данных SQL Microsoft Azure. И вы можете устранить ошибку pymssql Часто задаваемые вопросы < / а>.

Другой способ, вы также можете попробовать пример 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: Краткое руководство: Используйте Python для запроса базы данных Azure SQL.

Надеюсь это поможет.

person Leon Yue    schedule 22.06.2019
comment
Иногда я сталкивался с проблемой, когда соединение простаивало в течение нескольких минут. Теперь я изменил его на pyodbc и, похоже, проблема решена. Спасибо за ваше решение pyodbc. - person Bhautik; 11.07.2019
comment
@Bhautik Пожалуйста. Если мой ответ полезен для вас, вы можете принять его как ответ (щелкните галочку рядом с ответом, чтобы переключить его с серого на заполненный). Это может быть полезно для других членов сообщества. Спасибо. - person Leon Yue; 12.07.2019