无法通过Python连接到DB2驱动程序:SQL1042C

时间:2015-12-23 12:48:31

标签: python db2 dashdb

我无法使用Python连接到DB2远程服务器。这就是我所做的:

  1. 使用Python 2.7.10(在Mac OS X 10.11.1上)创建了virtualenv
  2. 使用sudo pip install ibm_db
  3. 安装了ibm-db
  4. 请输入以下代码:

    import ibm_db ibm_db.connect("my_connection_string", "", "")

  5. 然后我收到以下错误:

      

    异常:[IBM] [CLI驱动程序] SQL1042C意外的系统错误   发生了。 SQLSTATE = 58004 SQLCODE = -1042

    我已经搜索了几个小时并尝试了不同的解决方案。不幸的是,我无法在Mac OS X + Python + DB2上找到适当的环境设置指南。

3 个答案:

答案 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/libclidriver/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。请告知我们是否能解决您的问题。