SQL Алхимия с SQL Сервером - PullRequest
0 голосов
/ 26 мая 2020

Я не был уверен, как назвать мой пост, если у вас есть идея получше, не стесняйтесь редактировать заголовок.

Я не использовал SQL Алхимию раньше и документацию, которую я просмотрел в следующих местах, не помогает:

Вот код, который я использую:

import sqlalchemy as sal
from sqlalchemy import create_engine
#Here are the parameters I am using:

 - server = 'Q-20/fake_example'
 - database = 'AdventureWorks2017'
 - driver = 'ODBC Driver 17 for SQL Server' 
 - trusted_connection='yes'

DATABASE_CONNECTION = 'mssql+pyodbc://@server = ' + server + '/database = ' + database + '?trusted_connection = ' + trusted_connection + '&driver=' + driver

engine = sal.create_engine(DATABASE_CONNECTION)

Кажется, все это работает нормально, без каких-либо проблем; однако, когда я добавляю эту строку:

connection=engine.connect()

, я получаю следующее сообщение об ошибке:

sqlalchemy.ex c .OperationalError: (pyodb c .OperationalError) ('08001', '[08001] [Microsoft] [ODB C Driver 17 для SQL Server] Поставщик именованных каналов: не удалось открыть соединение с SQL сервером [53]. (53) (SQLDriverConnect); [08001] [Microsoft] [ODB C Driver 17 для SQL Server] Истекло время ожидания входа в систему (0); [08001] [Microsoft] [ODB C Driver 17 для SQL Server] Недопустимый атрибут строки подключения ( 0); [08001] [Microsoft] [ODB C Driver 17 для SQL Server] Произошла ошибка, связанная с сетью или спецификацией экземпляра c, при установке соединения с SQL сервером. Сервер не найден или недоступен. Проверьте правильность имени экземпляра и настройку сервера SQL для удаленных подключений. Для получения дополнительной информации см. SQL Серверную документацию. (53) ')

Я не уверен, что не так с тем, что я делаю, есть ли у кого-нибудь предложения?

То, что я пробовал до сих пор:

  1. Я подтвердил, что SQL Сервер настроен на разрешение удаленных подключений. Я выполнил эту проверку, следуя инструкциям здесь
  2. Удалил знак «@» перед сервером, но это только привело к тому же сообщению об ошибке.

1 Ответ

0 голосов
/ 26 мая 2020

Я понял часть того, что мне нужно было сделать. Мне нужно было изменить свои параметры.

Старые параметры:

  • server = 'Q-20 / fake_example'
  • database = 'AdventureWorks2017 '
  • driver =' ODB C Driver 17 for SQL Server '
  • trust_connection =' yes '

Новые параметры:

  • server = 'Q-20'
  • database = 'AdventureWorks2017'
  • driver = 'SQL + SERVER + NATIVE + CLIENT + 11.0'
  • trust_connection = 'yes'

Вот как в итоге выглядел мой код:

database_connection =  'mssql+pyodbc://Q-20/AdventureWorks2017?trusted_connection=yes&driver=SQL+SERVER+NATIVE+CLIENT+11.0'
...