在 CentOS 上 Informix 连接失败 的原因很多,下面按常见原因 → 排查方法 → 解决思路给你一个系统清单,你可以逐条对照。
Informix 强依赖环境变量。
必须变量:
INFORMIXDIR=/opt/informix
INFORMIXSERVER=ol_informix
PATH=$INFORMIXDIR/bin:$PATH
LD_LIBRARY_PATH=$INFORMIXDIR/lib:$INFORMIXDIR/lib/esql
检查:
env | grep INFORMIX
✅ 解决:
~/.bash_profile 或 /etc/profilesource 使其生效INFORMIXSERVER 与 sqlhosts 不一致sqlhosts 示例:
ol_informix onsoctcp 127.0.0.1 9088
检查:
cat $INFORMIXDIR/etc/sqlhosts
✅ 注意:
INFORMIXSERVER 名字必须完全匹配检查:
onstat -
常见结果:
shared memory not initialized → 没启动onstat: command not found → 环境变量错启动:
oninit -v
查看端口:
netstat -tunlp | grep 9088
# 或
ss -tunlp | grep 9088
CentOS 防火墙:
firewall-cmd --list-all
firewall-cmd --add-port=9088/tcp --permanent
firewall-cmd --reload
✅ 如果是远程连接,还要确认:
Informix 连接要求:
dbaccess / onmode 权限中检查:
id informix
客户端用户连接示例:
dbaccess dbname -
例如:
查看版本:
onstat -V
| 报错 | 原因 |
|---|---|
SQLSTATE=HY000 |
环境/服务问题 |
Can't connect to server |
sqlhosts/端口 |
Unknown host |
DNS / IP |
Shared memory not initialized |
服务没起 |
Permission denied |
用户/文件权限 |
onstat - 看服务起没起env | grep INFORMIX 看变量sqlhosts 看配置ss -tunlp 看端口dbaccess 测试你可以贴出:
sqlhosts 内容onstat - 输出我可以直接帮你定位是哪一种失败。