繁体   English   中英

通过 pyodbc 从 Python 连接到 Db2 时出错

[英]Error connecting from Python to Db2 through pyodbc

我按照这些说明在 Windows 10 中安装了 Db2 ODBC 驱动程序。 我在C:\tools\db2cli\中提取了驱动程序文件夹,然后从bin文件夹运行db2cli install -setup

这似乎工作正常,因为 ODBC 驱动程序已在 Windows 中注册:

在此处输入图像描述

但是当我尝试从Jupyter连接时,我收到了这个错误:

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' )

4 密码 = 'abc123' 5 驱动程序 = 'IBM DB2 ODBC 驱动程序 - C_tools_db2cli' ----> 6 conn = pyodbc.connect('DRIVER='}; =' 7 + 服务器 + ';DATABASE=' + 数据库 + ';UID=' 8 + 用户名 + ';PWD=' + 密码 + ';PROTOCOL=TCPIP;PORT=50000' )

错误: ('HY000', '[HY000] [IBM][CLI Driver] SQL1042C 发生意外的系统错误。SQLSTATE=58004\r\n (-1042) (SQLDriverConnect); [HY000] [IBM][CLI Driver] SQL1042C 发生意外的系统错误。SQLSTATE=58004\r\n (-1042)')

我试图找到错误代码以找到解决方案,但没有成功。 应该看什么来解决这个问题?

注意:我将C:\tools\db2cli\bin添加到 PATH 但仍然得到相同的错误。

此问题是由 Microsoft Windows 上某些特定配置的 clidriver 缺陷引起的。

您可以通过确保 PATH 上没有任何其他 Db2 产品( clidriver\bin除外),然后确保在启动 python 之前将两个附加目录添加到 PATH 来解决此问题。 这些是这些目录的完全限定路径名:

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

IBM 应该在某个时候为 IT34327 提供修复程序。

SERVER= 用于已编目的数据库

否则你必须使用:HOSTNAME= 如果你想指定完整的 DSN。 https://cloud.ibm.com/docs/Db2onCloud?topic=Db2onCloud-con_program&locale=fr

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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