【发布时间】:2015-06-23 20:50:15
【问题描述】:
我的 Python 代码:
import pyodbc
cnxn = pyodbc.connect('DRIVER=FreeTDS;DSN=S29;UID=test;PWD=test;TDS_Version=8.0;ClientCharset=UTF8')
cursor = cnxn.cursor()
cursor.execute("select user_id, user_name from users")
rows = cursor.fetchall()
for row in rows:
print row.user_id, row.user_name
得到错误:
Traceback (most recent call last):
File ".../test_mssql_connect.py", line 4, in <module>
cnxn = pyodbc.connect('DRIVER=FreeTDS;DSN=S29;UID=test;PWD=test;TDS_Version=8.0;ClientCharset=UTF8')
pyodbc.Error: ('HY000', '[] (20013) (SQLDriverConnect)')
我找不到信息,这个错误是什么('HY000', '[] (20013) (SQLDriverConnect)')以及如何解决。
同时通过tsql、osql和isql成功连接到基地
我的odbc.ini
[S29]
Driver=FreeTDS
Description=S29
ServerName=192.168.0.29
Database=test
UID=test
PWD=test
TDS_Version=8.0
我的odbcinst.ini
[FreeTDS]
Description=FreeTDS
Driver=/usr/local/Cellar/freetds/0.95.1/lib/libtdsodbc.so
Setup=/usr/local/Cellar/freetds/0.95.1/lib/libtdsodbc.so
UsageCount=2
CPTimeout =
CPReuse =
TDS Version = 8.0
client charset = utf-8
我的 freetds.conf
[global]
tds version = 8.0
[192.168.0.29]
host = 192.168.0.29
port = 1433
tds version = 8.0
[S29]
host = 192.168.0.29
port = 1433
tds version = 8.0
【问题讨论】:
-
你能从运行代码的机器远程登录到 SQL Server IP 地址吗?从终端(Windows 上的 cmd),尝试:
telnet 192.168.0.29 1433如果它连接,你很好。如果它只是在“正在连接...”处显示,则您无法访问远程 SQL Server。 -
通过 telnet 连接成功,而且从控制台使用 tsql、osql 和 isql 进行的所有测试也正常,但连接不成功从 python 工作。在来自 python 的服务器 CentOS 连接上一切正常,但在我的工作 Mac 上没有任何工作。
标签: python sql-server macos pyodbc freetds