在 CentOS 上解决 Informix 报错,通常需要先看具体报错内容,因为 Informix 的错种类繁多(启动失败、连接失败、 license、权限、字符集、端口等)。下面我按常见场景 + 排查思路 + 解决办法给你一个实用指南。
常见位置:
# 客户端报错
SQLCODE=-XXX
ISAM error -XXX
# 服务端
onstat - 看不到实例
online.log 报错
cd $INFORMIXDIR
tail -n 200 online.log
或:
find / -name online.log 2>/dev/null
Could not fork a new process
Cannot attach to shared memory
shmmax / shmall)sysctl -a | grep shm
修改:
vi /etc/sysctl.conf
kernel.shmmax = 2147483648
kernel.shmall = 524288
生效:
sysctl -p
free -m
onstat -
netstat -an | grep 1526
检查:
$INFORMIXDIR/etc/sqlhosts
示例:
demo_on onsoctcp 127.0.0.1 1526
/etc/hosts:
127.0.0.1 localhost
License validation failed
onstat -l
确认:
INFORMIXDIRONCONFIGls $INFORMIXDIR/etc/*.lic
Client does not support character set
统一字符集:
export DB_LOCALE=zh_CN.utf8
export CLIENT_LOCALE=zh_CN.utf8
systemctl stop firewalld
setenforce 0
vi /etc/selinux/config
SELINUX=disabled
Informix 必须用 informix 用户运行:
id informix
目录权限:
chown -R informix:informix $INFORMIXDIR
echo $INFORMIXDIR
echo $ONCONFIG
onstat -
netstat -an | grep informix_port
tail -n 100 $INFORMIXDIR/online.log
你可以把具体报错内容贴出来,例如:
我可以一步一步帮你解决 ✅