Невозможно подключиться к Azure SQL базе данных через Python ODB C Проблема с драйвером - PullRequest
0 голосов
/ 15 января 2020

Я пытаюсь подключиться к базе данных azure sql. Но почему-то я продолжаю получать следующую ошибку:

pyodb c .OperationalError: ('08001', '[08001] [Microsoft] [ODB C Драйвер 17 для SQL Сервер] Клиент не может установить sh соединение (0) (SQLDriverConnect) ')

У меня установлен ODB C Драйвер 17.

вот мой код:

import pyodbc
server = 'mftaccountinghost.database.windows.net'
database = 'mft_accounting'
username = 'localhost'
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("select * from dbo.expense_zoho")
row = cursor.fetchone()
while row:
    print (str(row[0]) + " " + str(row[1]))
    row = cursor.fetchone()

Вот моя строка соединения на Azure SQL База данных Connection String

Кто-нибудь есть идея, почему ошибка выскакивает?

Спасибо.

Ответы [ 2 ]

0 голосов
/ 21 января 2020

Убедитесь, что вы установили правильный Python SQL Драйвер .

Пожалуйста, обратитесь к этому руководству: Быстрый запуск: Используйте Python, чтобы запросить Azure SQL база данных .

Вот мой пример pyodbc кода, и он хорошо работает в моем окне.

import pyodbc
server = 'sqlserverleon.database.windows.net'
database = 'Mydatabase'
username ='ServerAdmin'
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("SELECT * FROM TEST6")
row = cursor.fetchone()
while row:
    print (str(row[0]) + " " + str(row[1]))
    row = cursor.fetchone()

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

0 голосов
/ 16 января 2020

Пожалуйста, убедитесь, что вы создали SQL логин с разрешением для подключения к базе данных. Вы можете попытаться создать пользователя автономной базы данных, как показано ниже, и использовать тот логин для подключения к базе данных. Вы создали этот логин с именем localhost?

CREATE USER yourlogin WITH PASSWORD = 'Yh-EhGFjh+';
GO
exec sp_addRoleMember 'db_datareader', 'yourlogin'; 
GO

Убедитесь, что вы создали правило брандмауэра, как описано в этой документации, а также правильное имя сервера и базы данных (вы не ошиблись их).

Попробуйте подключиться с помощью таких инструментов базы данных, как SSMS .

...