Ошибка при подключении к Azure через pymssql в Ubuntu

Я написал скрипт Python под названием test.py, который содержит следующее:

import pymssql

conn = pymssql.connect(host="hostname", user="username@hostname", password="pass", database="dbname")
cursor = conn.cursor()
cursor.execute('SELECT * FROM SalesLT.Customer WHERE CustomerID=%d', 1)
row = cursor.fetchone()
while row:
    print("ID=%d, Name=%s" % (row[0], row[3]))
    row = cursor.fetchone()

conn.close()

Я установил FreeTDS с помощью команд:

export PYMSSQL_BUILD_WITH_BUNDLED_FREETDS=1
pip install pymssql

Установка вроде бы работала, но при запуске программы я получаю сообщение об ошибке:

Traceback (most recent call last):
File "test.py", line 8, in <module>

 conn = pymssql.connect(host="hostname",user="username@hostname",password="pass",database="dbname")

File "pymssql.pyx", line 641, in pymssql.connect (pymssql.c:10824)

pymssql.OperationalError: (20002, 'Сообщение об ошибке DB-Lib 20002, серьезность 9:\nСбой подключения Adaptive Server\n')

Я не знаю, что не так, и помощь будет оценена по достоинству. Пожалуйста, дайте мне знать, если мне нужно внести изменения в freetds.conf.


person Kanak Sharma    schedule 27.10.2016    source источник
comment
Не могли бы вы включить свой файл freetds.conf?   -  person FlipperPA    schedule 27.10.2016
comment
re: user="username@hostname" — Вы случайно не пытаетесь подключиться к экземпляру Azure SQL?   -  person Gord Thompson    schedule 28.10.2016
comment
@GordThompson да, я пытаюсь подключиться к экземпляру Azure SQL.   -  person Kanak Sharma    schedule 28.10.2016
comment
@FlipperPA - вот файл freetds.config [MSSQL] host = kesnshoodata.database.windows.net port = 1433 tds version = 8.0   -  person Kanak Sharma    schedule 28.10.2016


Ответы (1)


я пытаюсь подключиться к экземпляру Azure SQL

Для Azure требуется зашифрованное соединение, а pymssql, установленный из .whl файлов по умолчанию или созданный с помощью PYMSSQL_BUILD_WITH_BUNDLED_FREETDS=1, не поддерживает зашифрованные соединения.

Инструкции по использованию pymssql с зашифрованными соединениями в Ubuntu см.

Как настроить pymssql с поддержкой SSL в Ubuntu 16.04 LTS?

person Gord Thompson    schedule 28.10.2016
comment
@gordthompson- в соответствии с предоставленной здесь ссылкой я пытаюсь запустить sudo -H pip install --no-binary pymssql pymssql, но он показывает ошибку. Использование: pip install [параметры] ‹спецификатор требований› ... pip install [параметры] - r ‹файл требований› ... pip install [опции] [-e] ‹URL-адрес проекта vcs› ... pip install [опции] [-e] ‹локальный путь к проекту› ... pip install [опции] ‹URL-адрес архива /path› ... нет такой опции: --no-binary my pip -V is pip 1.5.4 from /usr/lib/python2.7/dist-packages (python 2.7) вы можете мне помочь с этим - person Kanak Sharma; 01.11.2016
comment
pip версии 1.5.4 звучит так, как будто она ОЧЕНЬ старая. Самая последняя версия 8.1.2. попробуй sudo -H pip install --upgrade pip. - person Gord Thompson; 01.11.2016
comment
Я могу выполнить подключение, выполнив следующие действия. - person Kanak Sharma; 02.11.2016