简体   繁体   中英

Error connecting from Python to Db2 through pyodbc

I installed the Db2 ODBC driver in Windows 10 following these instructions . I extracted the driver folder in C:\tools\db2cli\ and run db2cli install -setup from the bin folder.

This seems to have worked fine, as the ODBC driver was registered in Windows:

在此处输入图像描述

But when I try to connect from Jupyter I get this error:

server = 'localhost' 
database = 'mydb' 
username = 'db2inst1' 
password = 'abc123' 
driver = 'IBM DB2 ODBC DRIVER - C_tools_db2cli'
conn = pyodbc.connect('DRIVER={' + driver +'};SERVER='
         + server + ';DATABASE=' + database + ';UID=' 
         + username + ';PWD=' + password + ';PROTOCOL=TCPIP;PORT=50000' )

Error Traceback (most recent call last) in 4 password = 'abc123' 5 driver = 'IBM DB2 ODBC DRIVER - C_tools_db2cli' ----> 6 conn = pyodbc.connect('DRIVER={' + driver +'};SERVER=' 7 + server + ';DATABASE=' + database + ';UID=' 8 + username + ';PWD=' + password + ';PROTOCOL=TCPIP;PORT=50000' )

Error: ('HY000', '[HY000] [IBM][CLI Driver] SQL1042C An unexpected system error occurred. SQLSTATE=58004\r\n (-1042) (SQLDriverConnect); [HY000] [IBM][CLI Driver] SQL1042C An unexpected system error occurred. SQLSTATE=58004\r\n (-1042)')

I unsuccessfully tried to find the error codes to find a solution. What should be looked at to fix this problem?

Note: I added C:\tools\db2cli\bin to the PATH but still get the same error.

This issue was caused by a defect in clidriver for some specific configurations on Microsoft Windows.

You can workaround this by ensuring that the PATH does not have any other Db2-products on it (except for clidriver\bin ), and then ensuring to add two additional directories to the PATH before launching python. These are the fully qualified pathnames to these directories:

clidriver\bin\icc64
clidriver\bin\amd64.vc12.crt

IBM should at some point deliver a fix for IT34327.

SERVER= is for the already cataloged database

otherwise you must use: HOSTNAME= if you want to specify full DSN. https://cloud.ibm.com/docs/Db2onCloud?topic=Db2onCloud-con_program&locale=fr

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM