【发布时间】:2018-12-27 00:57:13
【问题描述】:
这是一个相当常见的问题,但即使使用 SO like here 上的答案,我仍然无法连接。
当我设置到pyodbc 的连接时,我可以连接到以下内容:
cnxn = pyodbc.connect('DRIVER={SQL Server Native Client 11.0};SERVER=ip,port;DATABASE=db;UID=user;PWD=pass')
cursor = cnxn.cursor()
cursor.execute("some select query")
for row in cursor.fetchall():
print(row)
而且有效。
但是要在pandas 中进行.read_sql(),我需要与sqlalchemy 联系。
我已经尝试过托管连接和传递 pyodbc 连接,如下所示:
quoted = urllib.parse.quote_plus('DRIVER={SQL Server Native Client 11.0};Server=ip;Database=db;UID=user;PWD=pass;Port=port;')
engine = sqlalchemy.create_engine('mssql+pyodbc:///?odbc_connect={}'.format(quoted))
engine.connect()
我已经尝试了SERVER=ip,port 格式和单独的Port=port 参数,但仍然没有运气。
我得到的错误是Login failed for user 'user'. (18456)
非常感谢任何帮助。
【问题讨论】:
-
你安装了哪个版本的sqlserver?我一直面临许多与连接相关的问题,然后我意识到罪魁祸首是版本。
标签: python sql-server pandas sqlalchemy pyodbc