簡體   English   中英

無法從Python連接到MSSQL

[英]Unable to connect to MSSQL from Python

我的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)')以及如何解決此錯誤。

同時通過tsqlosqlisql我成功連接到了base

我的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

您的freetds.conf設置是什么? 請注意,您很可能希望使用TDS版本7.3,盡管我認為這不是問題,盡管可能是這樣,因為它默認為TDS版本7.1。 FreeTDS支持的TDS版本號的此處文檔:

http://www.freetds.org/userguide/choosingtdsprotocol.htm

您可能必須提供端口號,但是如果沒有看到freetds.conf DSN設置,就很難分辨了。 如果沒有Python的DSN,我的運氣會更好。 由於8.0不是有效的TDS版本,因此我將為您提供適用於我的完整示例:

freetds.conf:

[examplesql]
        host = examplesql.server.com
        port = 1433
        tds version = 7.3

odbc.ini:

[examplesql]
Driver = FreeTDS
Server = examplesql.server.com
Port = 1433
TDS_Version = 7.3

odbcinst.ini:

[FreeTDS]
Description = FreeTDS with Protocol up to 7.3
Driver = /usr/lib64/libtdsodbc.so.0

pyodbc connect,免費提供DSN:

DRIVER={FreeTDS};SERVER=examplesql.server.com;PORT=1433;DATABASE=dbname;UID=dbuser;PWD=dbpassword;TDS_Version=7.3;

您必須修改odbcinst.ini以指向驅動程序所在的位置。 一些注意事項:

  • 您必須更新TDS版本以匹配您正在運行的SQL Server版本和您正在運行的免費TDS版本。 0.95版支持TDS 7.3版。
  • TDS 7.3版可與MS SQL Server 2008及更高版本一起使用。
  • 使用MS SQL Server 2005的TDS版本7.2。

看到這里更多:

https://msdn.microsoft.com/zh-CN/library/dd339982.aspx

祝好運。

我重新安裝了pyodbc ,現在可以使用了。 我在這里下載https://github.com/juztin/pyodbc

 python setup.py build install --macports

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM