我试图在Mac OS X上使用pyodbc连接到一个DB2数据库,但似乎无法实现这一点。在类似的情况下,我成功地使用FreeTDS连接到MS SQL Server。
首先,我从IBM安装了db2exc_客户机_952_MAC_x86_64。成功安装之后,我通过ODBC管理员添加了驱动程序。
然后我试着运行这个python:
import pyodbc
cnxn = pyodbc.connect('Driver={IBM DB2 ODBC Driver}; Hostname=myhost.com; Port=50300; Protocol=TCPIP; Database=DB2ET; CurrentSchema=SCHM1; UID=MYUID; PWD=MYPWD;');
我收到这个错误:
回溯(最近一次呼叫时间):
文件“”,第1行,在
pyodbc。错误:('HY000','[] \xx88\xx88\xx88\xx88\xx88\x81\x81\x88\x88\x88\x88\x88\x88\x80\x81\x81\x88\x88\x88\x88\x88\x81\x81\x89\x88\xx88\xx88\x88\x88\x88\xx88\x88\x88\x88\x88\x88\x88\x88\x88\x88\x88\x88\x88\x88\x88\x88\x88\x88\x81\x81\x81\x81\x81\x81\x81\x81\x81\x81\x81\x81\x81\x81\x81\x81\xx81\x93\xf8\x8c\x90\x81\x8c\xf8\x8c\xa0\x80\xb0\xf8\x93\xa0\x80\xb4\xf8\x88\x80\xa0\xf8\x88\x80\x81\x81\xf8\x98\x90\x81\xa4\xf8\x98\x90\x81\xb4\xf8\x98\x90\x81\x81\x81\x81\x81\x90\x90\x81\xx03\x98\x80\x80\x80\x08\x08\x08\x08\x81\x08\x99\x99\x90\x81\x鄂\x08\x08\xx81\x81\x81\x80\x81\x81\x03\x81\x08\x08\x88\x88\x88\x80\x81\x81\x81\x88\x88\x88\x88\x88\x80\x81\x81\x81\x81\x90\x81\x81\x81\x81\x81\x81\x81\x81\x81\x81\xxx8\x9b\xa0\x80\xa0\xf8\x9d\x80\x81\xaf\xf8\x99\x90\x80\xa0\xf8\x9a\x90\x81\xb8\xf8\x9d\x80\x81\xb3\xf8\x88\x80\x80\xae\xf8\x94\xb0\x80\xa0\xf8\x93\x80\x81\x91\xf8\xxf8\xx88\xx81\x81\x81\x81\x81\x88\x81\x81\x81\x81\x81\x85\x88\x80\x80\x80\x80\x80\x80\x80\x80\x80\x80\x80\x80\x80\xb20\x80\x80\x80\x80\x80\x80\x80\x80\x80\x80\x80\xxxx03\xxxxxx0\xxx0\xx0\xxxxxx0\xxxxxxx0\xxxx0\xxxx0\x0\x0\x0\xxxxx0\xxx88\x86\x95\xb3\xfd\x82\x91\x82\x81\xae\xfd\xaf\x99\xa2\x80\xb2\xfd\x96\x93\x92\x81\xb2\xfd\x93\x82\xa2\xb9\x93\xff\x7f(-1024)(SQLDriverConnect)
我从搜索中发现HY000可能是一个connectionString问题,但我不确定如何破译其余的错误。
有什么想法吗?
最佳答案
似乎连接字符串因数据库而异,而且您使用的连接字符串与DB2不兼容。
下面是一些DB2连接字符串示例:
http://www.connectionstrings.com/ibm-db2
下面是我能找到的关于在一个DB2连接字符串中什么是有效的最好的参考:
http://publib.boulder.ibm.com/infocenter/db2luw/v9r5/index.jsp?topic=%2Fcom.ibm.swg.im.dbclient.adonet.ref.doc%2Fdoc%2FDB2ConnectionClass.html
基于此,我将您的连接字符串转换为:
Driver={IBM DB2 ODBC Driver}; Hostname=myhost.com; Port=50300; Protocol=TCPIP; Database=DB2ET; CurrentSchema=SCHM1; UID=MYUID; PWD=MYPWD;
致:
Driver={IBM DB2 ODBC Driver}; Server=myhost.com:50300; Database=DB2ET; CurrentSchema=SCHM1; UID=MYUID; PWD=MYPWD;