[Microsoft] [Драйвер ODBC 17 для SQL Server] Истекло время ожидания входа (0) (SQLDriverConnect) ') - PullRequest
1 голос
/ 09 мая 2019

Я не могу установить соединение с сервером SQL из Unix с использованием Python.

Я не смогу заменить драйвер с ODBC Driver 17 для SQL Server на ODBC Driver 13 для SQL Server, как описанов Pyodbc: ошибка времени ожидания входа из-за других зависимостей.

Может кто-нибудь предложить альтернативу?

КОД:

import sqlalchemy as sa

from urllib import parse as db_parse

from sqlalchemy import event

params = db_parse.quote_plus(r"DRIVER={ODBC Driver 17 for SQL Server};SERVER='server,port';DATABASE=DB_NAME;username=USER_ID;password=PWD;Trusted_Connection=yes")

engine = sa.create_engine('mssql+pyodbc:///?odbc_connect={}'.format(params))

connection = engine.connect()

ОШИБКА:

sqlalchemy.exc.OperationalError: (pyodbc.OperationalError) ('HYT00', '[HYT00] [Microsoft][ODBC Driver 17 for SQL Server]Login timeout expired (0) (SQLDriverConnect)') (Background on this error at: http://sqlalche.me/e/e3q8)

1 Ответ

1 голос
/ 09 мая 2019

Моя строка подключения выглядит иначе:

"DRIVER={ODBC Driver 17 for SQL Server};SERVER=myserver;DATABASE=mydb;UID=myuser;PWD=mypassword"

Лидс до

import pyodbc
connection = pyodbc.connect("DRIVER={ODBC Driver 17 for SQL Server};SERVER=myserver;DATABASE=mydb;UID=myuser;PWD=mypassword", autocommit=True)

Вместо UID вы используете имя пользователя и т. Д. Все слова, начинающиеся с 'my', должны быть заменены фактическими БД, пользователем и паролем. Вы также должны удалить часть Trusted_Connection=True;, как указал Panagiotis Kanavos в комментарии. Это говорит о том, что вы используете своего пользователя Windows для аутентификации (что явно не доступно в Linux).

...