Python 使用pyodbc连接Teradata数据库时出现问题

Python 使用pyodbc连接Teradata数据库时出现问题,python,odbc,pyodbc,Python,Odbc,Pyodbc,目前,我正在运行一个简单的python脚本来连接数据库: import pyodbc cnxn = pyodbc.connect('DRIVER={Teradata};DBCNAME=(MYDB);UID=(MYUSER); PWD=(MYPASS);QUIETMODE=YES') 显然,替换了服务器和凭据。但是,在运行此脚本时,出现以下错误: pyodbc.Error: ('200', '[200] [unixODBC][eaaa[DCTrdt rvr o nuhifraint o n (0

目前,我正在运行一个简单的python脚本来连接数据库:

import pyodbc
cnxn = pyodbc.connect('DRIVER={Teradata};DBCNAME=(MYDB);UID=(MYUSER); PWD=(MYPASS);QUIETMODE=YES')
显然,替换了服务器和凭据。但是,在运行此脚本时,出现以下错误:

pyodbc.Error: ('200', '[200] [unixODBC][eaaa[DCTrdt rvr o nuhifraint o n (0) (SQLDriverConnectW)')

我能找到的唯一帮助是安装了Teradata ODBC驱动程序,但我不明白为什么我无法连接。有人对此有什么想法吗?

您必须使用以下方法进行连接:

TDCONN = pyodbc.connect('DSN=yourDSNname;',ansi=True, autocommit=True)
您可以替换
DSN=yourdsname与您已有的一致。

我遇到了这个“非英语”错误消息问题。我认为这是因为使用了错误的libodbc.so和libodbcinst.so版本。更改/usr/lib/…中的链接。。。指向teradata安装的版本对我有用。在Ubuntu 12.04中使用默认安装目录的64位命令包括:

cd /usr/lib/x86_64-linux-gnu
ls -lha | grep odbc (To should see the files below which are to be replaced).
sudo mv libodbc.so.1.0.0 Xlibodbc.so.1.0.0
sudo ln -s /opt/teradata/client/14.10/odbc_64/lib/libodbc.so libodbc.so.1.0.0 
sudo mv libodbcinst.so.1.0.0 Xlibodbcinst.so.1.0.0
sudo ln -s /opt/teradata/client/14.10/odbc_64/lib/libodbcinst.so libodbcinst.so.1.0.0
我以前也安装过(通过apt-get)odbcinst,所以我重定向了这两个文件。但可能只需要第一个