【问题标题】:How do I get ibm_db for Node.js to work with DB2 in Mac OS X 10.10?如何让 ibm_db for Node.js 与 Mac OS X 10.10 中的 DB2 一起使用?
【发布时间】:2014-12-17 13:24:45
【问题描述】:

目前我正在尝试使用ibm_db node.js 模块将我的应用程序与 DB2 连接起来,就像我在 Windows(我过去的工作站的操作系统)上所做的那样。为了以防万一,我关注了一些关于 Mac OS X 和 ibm_db python 模块的guides,但它也不起作用。 ibm_db 必须安装,但是当我进行第一次数据库交互时,它会引发错误:

dyld: lazy symbol binding failed: Symbol not found: _SQLAllocHandle
Referenced from: /Users/devniel/dev/Pon.de.tu.parte/node_modules/ibm_db/build/Release/odbc_bindings.node
  Expected in: dynamic lookup

dyld: Symbol not found: _SQLAllocHandle
  Referenced from: /Users/devniel/dev/Pon.de.tu.parte/node_modules/ibm_db/build/Release/odbc_bindings.node
  Expected in: dynamic lookup

我在 Github 上发布了issue,他们解释说原因是缺少适用于 Mac OS X 的 DS 驱动程序,所以,有没有办法让它工作,例如python 家伙does ? (我明天试试)。

【问题讨论】:

  • 您是否安装了 DB2 Client for Mac OS X? (优胜美地绝对不支持(目前),尽管它可能会起作用)
  • 谢谢伊恩。我在哪里可以下载 DB2 客户端?目前我已经安装了 db2 express 并通过终端或 SQuirreL 访问它,但现在我想通过 node.js 代码来执行此操作。

标签: python node.js macos db2


【解决方案1】:

如果您的 Mac(即服务器)上安装了 DB2 Express-C,那么您已经拥有了所需的客户端库。当您去构建ibm_db 时,您可以将IBM_DB_HOME 环境变量指向DB2 实例所有者的sqllib 目录。例如:

export IBM_DB_HOME=/Users/db2inst1/sqllib

注意: ibm_db 将构建并工作,尽管当前版本的 bindings.gyp 文件存在问题,阻止它在 Mac OS X 上构建(它被配置为仅在Linux)。您可以将以下条件添加到bindings.gyp 以使其与node-gyp 一起构建:

    [ 'OS == "mac" and target_arch =="x64" ', {
      'libraries' : [
        '-L$(IBM_DB_HOME)/lib -L$(IBM_DB_HOME)/lib64 ',
        '-ldb2'
      ],
      'include_dirs': [
        '$(IBM_DB_HOME)/include'
      ],
      'cflags' : [
        "-g "
      ],
    }]

【讨论】:

  • 感谢 Ian,但现在我收到“中止陷阱:6”错误。
  • 我只想连接到删除数据库。有没有办法在不创建本地数据库的情况下做到这一点?
  • @Arkanoid 是的。如果您为 Mac OS X 安装 DB2 客户端,您将拥有与上面所示的大致相同的步骤——您仍将创建一个实例(客户端实例,而不是服务器实例)。
  • @IanBjorhovde 我找不到在哪里下载它。有链接吗?
  • 当您下载 DB2 Express-C for Mac 时,您可以选择下载完整的服务器或仅下载客户端。
猜你喜欢
  • 2011-10-27
  • 1970-01-01
  • 1970-01-01
  • 2015-04-28
  • 1970-01-01
  • 1970-01-01
  • 2015-03-22
  • 2015-11-03
  • 2014-12-15
相关资源
最近更新 更多