Ubuntu 上配置 Informix 网络连接的实用步骤
一 环境准备与安装
- 创建专用用户与目录(推荐):
- sudo groupadd -g 3000 informix
- sudo useradd -u 3000 -g 3000 -d /opt/informix -m informix
- 安装客户端或服务器软件(二选一或同时安装):
- 服务器:上传并解压安装包,执行安装脚本(示例:./ids_install),按向导完成。
- 客户端:安装适用于 Linux 的 .deb/.rpm 包;若为 RPM,可用 alien 转换后安装,或直接使用 IBM 提供的 Linux 安装介质。
- 设置环境变量(对 informix 用户生效,写入 ~/.bashrc 或 ~/.profile):
- export INFORMIXDIR=/opt/informix
- export INFORMIXSERVER=ifxserver
- export ONCONFIG=onconfig.ifxserver
- export INFORMIXSQLHOSTS=$INFORMIXDIR/etc/sqlhosts
- export PATH=$INFORMIXDIR/bin:$PATH
- export LD_LIBRARY_PATH=$INFORMIXDIR/lib:$LD_LIBRARY_PATH
- 使配置生效:source ~/.bashrc。
二 服务器端网络与监听配置
- 在服务器上定义服务端口(/etc/services):
- echo “informix_svc 1526/tcp” | sudo tee -a /etc/services
- 配置 sqlhosts(服务器与客户端通用格式,位于 $INFORMIXDIR/etc/sqlhosts 或 INFORMIXSQLHOSTS 指定路径):
- 示例:ifxserver onsoctcp 0.0.0.0 informix_svc
- 说明:onsoctcp 为常用 TCP 套接字协议;0.0.0.0 表示监听所有地址;也可写具体主机名或 IP。
- 配置 onconfig(关键网络项):
- DBSERVERNAME ifxserver
- NETTYPE ipcshm,1,50,CPU(本地共享内存)+ onsoctcp,1,50,NET(TCP 网络,按 CPU/连接数调整队列)
- 启动或重启引擎并验证:
- 首次初始化:oninit -ivy
- 重启:onmode -ky && oninit
- 状态检查:onstat -;网络监听检查:onstat -g nif;查看日志:$INFORMIXDIR/tmp/online.log 或 $INFORMIXDIR/online.log。
三 客户端连接配置与测试
- 准备客户端 sqlhosts(与服务器一致,或仅保留目标服务器条目):
- 示例:ifxserver onsoctcp 192.168.10.20 1526
- 设置客户端环境变量(与服务器类似,确保 INFORMIXDIR/INFORMIXSERVER/PATH/LD_LIBRARY_PATH 正确)。
- 测试连通与登录:
- 端口连通:nc -vz 192.168.10.20 1526 或 telnet 192.168.10.20 1526
- 命令行连接:isql -v ifxserver username password
- 图形/交互:dbaccess(选择服务器、数据库后登录执行 SQL)。
四 防火墙与常见排错
- 防火墙放行(Ubuntu 常用 firewalld/ufw):
- firewalld:sudo firewall-cmd --permanent --add-port=1526/tcp && sudo firewall-cmd --reload
- ufw:sudo ufw allow 1526/tcp
- 常见排错要点:
- 服务未监听:onstat -g nif 应看到 onsoctcp 监听;否则检查 onconfig 的 NETTYPE 与 sqlhosts 协议/端口。
- 端口不通:用 nc/telnet 验证;若不通,检查云安全组、服务器防火墙、监听地址(0.0.0.0 vs 127.0.0.1)。
- 客户端找不到服务器:核对 sqlhosts 的服务器名与 INFORMIXSERVER 一致,协议与端口匹配。
- 认证失败:核对用户名/口令、数据库权限及 DB_LOCALE/CLIENT_LOCALE 等环境变量一致性。
- 引擎未联机:onstat - 非 On-Line 时,查看 $INFORMIXDIR/online.log 定位原因(如磁盘、日志、配置错误)。