我无法使用Python从UNIX与SQL Server建立连接。
,我将无法替换SQL Server的ODBC驱动程序17驱动器为SQL Server的ODBC Driver 13,如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)
我的连接字符串看起来不同:
"DRIVER={ODBC Driver 17 for SQL Server};SERVER=myserver;DATABASE=mydb;UID=myuser;PWD=mypassword"
LEEDS
import pyodbc
connection = pyodbc.connect("DRIVER={ODBC Driver 17 for SQL Server};SERVER=myserver;DATABASE=mydb;UID=myuser;PWD=mypassword", autocommit=True)
而不是使用UID,您使用的是用户名等。所有以"我的"开头的单词都必须用实际的DB,用户和密码替换。您还应该删除Trusted_Connection=True;
部分,因为Panagiotis Kanavos在评论中指出。这说您正在使用Windows-user进行身份验证(显然在Linux上不可用(。