You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

NodeJS 14连接OneDB Informixdb失败求助(Ubuntu 20.04环境)

Node.js 14 + informixdb 连接OneDB Informix失败(Ubuntu 20.04环境,Windows本地正常)

本地Windows环境下使用Node.js 14搭配informixdb模块可正常连接OneDB Informix,但Azure上的Ubuntu 20.04 x86_64环境无论是否安装驱动均无法建立连接。已尝试手动安装模块、搜索同类错误等方法,问题仍未解决。

相关代码:

const dbConfig = `
  DRIVER={HCL INFORMIX ODBC DRIVER (64-bit)};
  SERVER=server;
  DATABASE=db;
  HOST=127.0.0.1;
  SERVICE=9001;
  UID=user;
  PWD=p@sSword;`

const test = informix.open(dbConfig, (err, conn) => {
  if (err) {
    console.error('Erro ao abrir a conexão:', err)
    // reject(err) // Reject the promise if there's an error
    console.log("Conection error", err)
    console.log("Conection open", conn)
    return
  }
})
console.log("---->", test)

解决思路

1. 验证ODBC驱动的安装与配置

  • Ubuntu环境下需确保安装了对应64位的HCL Informix ODBC驱动,且驱动名称与连接字符串中的一致。可通过odbcinst -q -d命令查看已注册的驱动列表,确认驱动标识(Linux下驱动名可能不带(64-bit)后缀,比如HCL INFORMIX ODBC DRIVER)。
  • 检查/etc/odbcinst.ini配置文件,确保驱动路径正确,示例配置:
    [HCL INFORMIX ODBC DRIVER (64-bit)]
    Description=HCL Informix ODBC Driver (64-bit)
    Driver=/opt/IBM/informix/lib/cli/iclit09b.so
    Setup=/opt/IBM/informix/lib/cli/iclit09b.so
    FileUsage=1
    

2. 排查网络与端口连通性

  • 连接字符串中的HOST=127.0.0.1仅适用于OneDB与Node.js同服务器的场景,若OneDB部署在其他实例,需替换为实际的服务器IP。
  • 在Ubuntu服务器上执行nc -zv <OneDB_HOST> 9001或telnet <OneDB_HOST> 9001,验证端口是否可访问。同时检查Azure安全组、OneDB服务器防火墙是否开放9001端口。

3. 确保informixdb模块安装依赖完整

  • Ubuntu安装informixdb需要编译环境支持,先安装依赖包:
    sudo apt-get update && sudo apt-get install build-essential unixodbc-dev
    
  • 卸载并重新安装informixdb模块,观察安装日志是否有编译错误:
    npm uninstall informixdb
    npm install informixdb
    

4. 适配Linux环境的连接字符串

  • Linux下ODBC连接字符串格式可能与Windows存在差异,尝试简化驱动名称、去除多余换行与空格,示例:
    const dbConfig = "DRIVER=HCL INFORMIX ODBC DRIVER;SERVER=server;DATABASE=db;HOST=xxx.xxx.xxx.xxx;SERVICE=9001;UID=user;PWD=p@sSword;"
    

5. 配置Informix环境变量

  • 设置Informix相关环境变量,确保Node.js进程可读取:
    export INFORMIXDIR=/opt/IBM/informix
    export LD_LIBRARY_PATH=$INFORMIXDIR/lib:$INFORMIXDIR/lib/cli:$LD_LIBRARY_PATH
    
  • 可将上述命令添加至~/.bashrc或项目启动脚本中,避免每次启动都手动配置。

6. 开启ODBC调试日志定位问题

  • 设置ODBC调试环境变量,生成详细日志:
    export ODBCINI=/etc/odbc.ini
    export ODBCINSTINI=/etc/odbcinst.ini
    export TRACE=1
    export TRACEFILE=/tmp/odbc_trace.log
    
  • 运行Node.js程序后,查看/tmp/odbc_trace.log中的错误详情,定位具体连接失败原因。

内容的提问来源于stack exchange,提问作者Gabriel Barbosa

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.12 06:55:37