我无法使用Python连接到DB2远程服务器。这就是我所做的:
sudo pip install ibm_db
请输入以下代码:
import ibm_db
ibm_db.connect("my_connection_string", "", "")
然后我收到以下错误:
异常:[IBM] [CLI驱动程序] SQL1042C意外的系统错误 发生了。 SQLSTATE = 58004 SQLCODE = -1042
我已经搜索了几个小时并尝试了不同的解决方案。不幸的是,我无法在Mac OS X + Python + DB2上找到适当的环境设置指南。
答案 0 :(得分:1)
您是否按照此处的设置说明进行操作? https://www-01.ibm.com/support/knowledgecenter/SSEPGG_9.7.0/com.ibm.swg.im.dbclient.python.doc/doc/t0054368.html
在Python代码运行之前,您需要正确安装DB2 ODBC驱动程序。
这个问题也可能会有所体现: https://github.com/ibmdb/node-ibm_db/issues/34
答案 1 :(得分:1)
我们能够成功安装驱动程序,并且建立了与db的连接而没有任何问题。
步骤如下: 1)升级到OS X El Capitan 2)安装pip - sudo pip install 3)安装ibm_db - sudo pip install ibm_db 4)在安装过程中,出现以下错误
参考文献:/Users/roramana/Library/Python/2.7/lib/python/site-packages/ibm_db.so 原因:在/Users/roramana/Library/Python/2.7/lib/python/site-packages/ibm_db.so中使用受限二进制文件不安全地使用相对rpath libdb2.dylib
禁用系统完整性保护后,安装正常。
从错误sql1042c,您似乎遇到了一些环境设置问题。 您可以尝试将DYLD_LIBRARY_PATH设置为已提取odbc和cli驱动程序的路径。
如果问题仍然存在,请收集db2跟踪并与我们分享:
db2trc on -f trc.dmp
运行你的repro
db2trc off
db2trc flw trc.dmp trc.flw
db2trc fmt trc.dmp trc.fmt
分享trc.flw和trc.fmt文件。
答案 2 :(得分:1)
我能够在其中一台mac机器中重现错误1042C。
同样的解决方案是将DYLD_LIBRARY_PATH
设置为clidriver/lib/icc
。我建议您将DYLD_LIBRARY_PATH
同时设置为clidriver/lib
和clidriver/lib/icc
。例如:
export DYLD_LIBRARY_PATH=/Library/Python/2.7/site-packages/ibm_db-2.0.6-py2.7-macosx-10.10-intel.egg/clidriver/lib:/Library/Python/2.7/site-packages/ibm_db-2.0.6-py2.7-macosx-10.10-intel.egg/clidriver/lib/icc
我的机器上安装了python 2.7,easy_install / pip将自动下载的clidriver安装到/Library/Python/2.7/site-packages/ibm_db-2.0.6-py2.7-macosx-10.10-intel.egg/
目录。
请求您根据您的环境设置DYLD_LIBRARY_PATH
。请告知我们是否能解决您的问题。