在 CentOS 下使用 Informix 出现报错,原因可能很多,通常需要结合具体报错信息来判断。下面我先总结常见原因和排查思路,你可以对照看看;如果你能贴出完整报错内容(命令、错误码、日志),我可以更精准定位。
Informix 强依赖环境变量:
INFORMIXDIR
INFORMIXSERVER
ONCONFIG
PATH
LD_LIBRARY_PATH
典型报错:
sqlcode -25596Could not initialize serverShared memory not initialized检查:
echo $INFORMIXDIR
echo $INFORMIXSERVER
env | grep INFORMIX
示例(bash):
export INFORMIXDIR=/opt/informix
export INFORMIXSERVER=ol_informix
export ONCONFIG=onconfig.ol_informix
export PATH=$INFORMIXDIR/bin:$PATH
export LD_LIBRARY_PATH=$INFORMIXDIR/lib:$INFORMIXDIR/lib/esql
Informix 必须用 informix 用户启动
错误示例:
Permission deniedCannot open shared memory检查:
id informix
whoami
正确方式:
su - informix
oninit -v
尤其是 CentOS 7/8
常见缺失:
libaioglibcncurseslibgcc检查:
ldd $INFORMIXDIR/bin/oninit
安装依赖:
yum install libaio ncurses libgcc glibc
SELinux 经常会拦 Informix
现象:
Permission denied临时关闭测试:
setenforce 0
永久关闭(不推荐生产):
vi /etc/selinux/config
SELINUX=disabled
默认端口在:
$INFORMIXDIR/etc/sqlhosts
示例:
ol_informix onsoctcp 127.0.0.1 9088
开放端口:
firewall-cmd --add-port=9088/tcp --permanent
firewall-cmd --reload
常见错误:
检查:
onstat -
informix 用户env | grep INFldd oninit/tmp 和 online.log你可以直接贴:
onstat - 输出sqlca.sqlcode我可以一步一步帮你定位 ✅