Я много искал и нашел решение.
Похоже, что модуль pymssql
, который вы установили напрямую с помощью pip из pypi.org , не может нормально работать с PaaS Azure SQL. Вам необходимо следовать официальному руководству ( Настройка среды разработки для pyms sql Python development ), чтобы загрузить указанный файл c whl и установить его вручную.
В моем случае я использую Windows ОС с Python 3.7, поэтому я загружаю pymssql-2.1.4-cp37-cp37m-win_amd64.whl
. cp37
для python версия 3.7. win
для Windows ОС. amd64
для 64-битной версии. Вы должны выбрать правильный, основанный на вашей среде.
Затем установите загруженный модуль с помощью pip install {your_whl_file}
. После этого я могу подключиться к своему Azure SQL:
import pymssql
server = 'jackdemo.database.windows.net'
database = 'jackdemo'
username = 'jack@jackdemo'
password = '***********'
cnxn = pymssql.connect(server, username, password, database)
cursor = cnxn.cursor()
cursor.execute("select * from Users")
row = cursor.fetchone()
while row:
print(str(row[0]) + " " + str(row[1]))
row = cursor.fetchone()
Результат:
Кстати, я могу попытаться объяснить, почему вы можете подключиться к sql серверу с помощью * .cloudapp. azure .com. Основываясь на пути URI, кажется, что это DNS-имя для Azure VM. Если это так, модуль pyms sql прекрасно работает с сервером sql на этой виртуальной машине, поскольку это не PaaS Azure SQL.
Еще одно предложение - использовать pyodbc
. Я вижу образцы из Azure SQL документации использовать его. Это может вызвать меньше проблем.