1

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

  1. 使用 Python 2.7.10(在 Mac OS X 10.11.1 上)创建了一个 virtualenv
  2. 使用安装 ibm-dbsudo pip install ibm_db
  3. 运行以下代码:

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

然后我收到以下错误:

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

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

4

3 回答 3

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

于 2015-12-23T18:37:41.530 回答
1

我能够在其中一台 mac 机器上重现错误 1042C。

相同的解决方案是设置DYLD_LIBRARY_PATHclidriver/lib/icc. 我建议你DYLD_LIBRARY_PATH同时设置clidriver/libclidriver/lib/iccFor 例如:

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根据自己的环境进行设置。请让我们知道它是否能解决您的问题。

于 2016-01-13T09:45:44.930 回答
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 中不安全使用相对 rpath libdb2.dylib /site-packages/ibm_db.so 带有受限二进制文件

禁用系统完整性保护后,安装正常。

从错误 sql1042c 来看,您似乎遇到了一些环境设置问题。您可以尝试将 DYLD_LIBRARY_PATH 设置为您提取 odbc 和 cli 驱动程序的路径。

如果问题仍然存在,请收集 db2 traces 并与我们分享:

db2trc on -f trc.dmp

运行你的复制品

db2trc 关闭

db2trc flw trc.dmp trc.flw

db2trc fmt trc.dmp trc.fmt

共享 trc.flw 和 trc.fmt 文件。

于 2016-01-07T09:32:03.617 回答