DB2:正在获取[IBM][CLI驱动程序] SQLSTATE=58004 SQLCODE=-1042

wbgh16ku  于 2022-11-07  发布在  DB2
关注(0)|答案(2)|浏览(439)

我是IBM DB2领域的新手,正在尝试使用Jupyter笔记本与DB2建立连接:

import ibm_db

try:
    ibm_db.pconnect("DATABASE=DB2;HOSTNAME=hostname;PORT=60000;PROTOCOL=TCPIP;UID=user;PWD=password;", "", "")
    print("Connected to DB")
except Exception as e:
    print(e)

但虎子:

[IBM][CLI Driver] SQL1042C  An unexpected system error occurred.  SQLSTATE=58004 SQLCODE=-1042

有什么建议吗?
编辑:
已获得此问题的解决方案。将其张贴在此处,以便帮助其他人:
ibm_db.pconnect字符串中添加AUTHENTICATION=SERVER

nzrxty8p

nzrxty8p1#

ibm_db.pconnect字符串中添加AUTHENTICATION=SERVER

pod7payv

pod7payv2#

如果您的代码在Linux上可以工作,但在Windows上失败,并且您使用的是SQLAlchemy,这可能也会有所帮助:
您可能遇到了影响某些Microsoft Windows配置的已知缺陷。
使用pip show ibm_db查找站点包目录的“Location:“。
例如,假设该目录为c:\python\lib\site-packages
您的安装目录可能会有所不同,但请尝试理解其中的含义。
然后修改PATH环境变量,将以下目录附加到PATH:
c:\python\lib\site-packages\clidriver\bin\amd64.VC12.CRT
(that是附加了\clidriver\bin\amd64.VC12.CRT的站点软件包路径)
修改PATH后,您可以重试python ibm_db数据库连接。
如果您没有修改PATH的权限,您也可以将amd64.VC12.CRT目录的内容(2个.DLL文件)复制到另一个目录中,您知道当python运行时,该目录已经在PATH中。
如果您使用SSL/TLS加密数据库连接,有时还需要在PATH中添加第二个目录(... site-packages\clidriver\bin\icc 64)。
https://github.com/ibmdb/python-ibmdb/issues/599开始

相关问题