CentOS 连不上 Informix,通常不是“某一个原因”,而是网络、服务、配置、权限、驱动这几类问题中的一类或几类叠加。下面按最常见 → 最少见给你一个排查清单。
在 Informix 服务器上执行:
onstat -
On-Lineshared memory not initialized → 服务没启动启动服务:
oninit
在 CentOS 客户端上测试:
telnet informix_ip 9088
# 或
nc -vz informix_ip 9088
不通的常见原因:
CentOS 上连 Informix 必须设置环境变量:
export INFORMIXDIR=/opt/informix
export INFORMIXSERVER=ol_informix
export PATH=$INFORMIXDIR/bin:$PATH
否则会报:
INFORMIXDIR not setcannot find sqlexec客户端需要:
$INFORMIXDIR/etc/sqlhosts
示例:
ol_informix onsoctcp 192.168.1.10 9088
常见错误:
CentOS 上不会自带 Informix 驱动,需要:
检查:
ls $INFORMIXDIR/lib/cli
如果没有 → 没装客户端
检查:
onstat -g ntt
如果只看到 127.0.0.1,远程连不上。
修改:
$INFORMIXDIR/etc/sqlhosts
确保是真实 IP 或 0.0.0.0
即使能连上,也会失败:
User not known to the database server
解决:
GRANT CONNECT TO username;
firewall-cmd --list-all
放行端口:
firewall-cmd --add-port=9088/tcp --permanent
firewall-cmd --reload
临时测试:
setenforce 0
如果这样能连 → SELinux 策略问题
| 报错 | 可能原因 |
|---|---|
SQL30081N |
网络/端口 |
INFORMIXDIR not set |
环境变量 |
Cannot connect to server |
sqlhosts |
Shared memory not initialized |
服务没起 |
User not known |
权限 |
我可以更精确判断:
sqlhosts 内容onstat - 输出你可以直接贴报错,我帮你逐行分析。