我是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
。
2条答案
按热度按时间nzrxty8p1#
在
ibm_db.pconnect
字符串中添加AUTHENTICATION=SERVER
。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开始