【发布时间】:2012-03-15 16:09:33
【问题描述】:
我正在尝试从 Linux (SLES) 上的 python 连接到 MSSQL 数据库。
我已经安装了 pyodbc 和 Free TDS。从命令行:
tsql -H server -p 1433 -U username -P password
从 Python 连接到服务器没有问题:
import pyodbc
pyodbc.connect(driver='{FreeTDS}', server='server', database='database', uid='username', pwd='password')
产生错误:
pyodbc.Error: ('08001', '[08001] [unixODBC][FreeTDS][SQL Server]Unable to connect to data source (0) (SQLDriverConnect)')
我发现这个错误非常模糊。即使是缩小问题范围的建议现在也会有所帮助。
编辑: 查看 TDS 日志转储,这似乎是整个事情崩溃的地方:
token.c:328:tds_process_login_tokens()
util.c:331:tdserror(0x87bbeb8, 0x8861820, 20017, 115)
odbc.c:2270:msgno 20017 20003
util.c:361:tdserror: client library returned TDS_INT_CANCEL(2)
util.c:384:tdserror: returning TDS_INT_CANCEL(2)
util.c:156:Changed query state from IDLE to DEAD
token.c:337:looking for login token, got 0()
token.c:122:tds_process_default_tokens() marker is 0()
token.c:125:leaving tds_process_default_tokens() connection dead
login.c:466:login packet accepted
util.c:331:tdserror(0x87bbeb8, 0x8861820, 20002, 0)
odbc.c:2270:msgno 20002 20003
util.c:361:tdserror: client library returned TDS_INT_CANCEL(2)
util.c:384:tdserror: returning TDS_INT_CANCEL(2)
mem.c:615:tds_free_all_results()
error.c:412:odbc_errs_add: "Unable to connect to data source"
【问题讨论】:
标签: python database tsql database-connection pyodbc