在 CentOS 上运行 Informix 报错 的原因非常多,需要先明确具体报错信息才能精准判断。下面我先给你一个常见原因分类 + 排查思路,你可以对照看,或者直接把报错贴出来。
Informix 依赖大量环境变量:
INFORMIXDIR
INFORMIXSERVER
ONCONFIG
PATH
LD_LIBRARY_PATH
典型报错
sqlcode=-908
Cannot connect to server
✅ 检查:
echo $INFORMIXDIR
echo $INFORMIXSERVER
env | grep INF
典型报错
-908
-25582
SQLSTATE=08001
✅ 排查:
onstat -
若输出:
shared memory not initialized
说明数据库没启动。
启动:
oninit -vy
sqlhosts 中端口未开放或写错
典型报错
-908
Connection refused
✅ 检查:
cat $INFORMIXDIR/etc/sqlhosts
netstat -tunlp | grep 端口
CentOS 防火墙:
firewall-cmd --list-all
/tmp 权限异常典型报错
Permission denied
Segmentation fault
✅ 检查:
ls -ld $INFORMIXDIR
id informix
getenforce
临时关闭 SELinux 测试:
setenforce 0
典型报错
error while loading shared libraries
libncurses.so.5 not found
✅ 安装依赖:
yum install -y ncurses compat-libstdc++ glibc
如:
典型报错
-28871
-25507
✅ 检查:
oncheck -pr
onstat - 能否执行sqlhosts 是否正确请把以下任一内容贴出来:
dbaccess、oninit)onstat - 输出我可以直接告诉你是哪一条导致的,以及怎么修。