在 Ubuntu 上遇到 Informix 报错,通常需要先明确报错内容和使用场景(客户端连接?服务端启动?开发程序?)。下面我按常见报错类型 + 通用排查方法给你一套可操作的解决思路。
请先记录以下信息,方便精准定位:
dbaccess / isql 连接?报错示例:
error while loading shared libraries: libxxx.so: cannot open shared object file
解决:
# 查找库
find / -name "libxxx.so" 2>/dev/null
# 添加到环境变量
export LD_LIBRARY_PATH=$INFORMIXDIR/lib:$INFORMIXDIR/lib/esql:$LD_LIBRARY_PATH
建议写入:
~/.bashrc
报错示例:
INFORMIXDIR not set
Cannot find sqlexec
解决:
export INFORMIXDIR=/opt/ibm/informix
export INFORMIXSERVER=ol_informix
export PATH=$INFORMIXDIR/bin:$PATH
export ONCONFIG=onconfig.ol_informix
常见错误:
shared memory not initialized
Cannot bind to port
排查:
onstat -
可能原因 & 解决:
/dev/shm 太小
df -h /dev/shm
可临时增大:
sudo mount -o remount,size=1G /dev/shm
端口被占用
检查 sqlhosts:
cat $INFORMIXDIR/etc/sqlhosts
报错示例:
908: Attempt to connect to database server failed
-25507: Incorrect password
解决:
sqlhosts 中协议(onsoctcp / olsoctcp)sudo ufw allow 9088/tcp
Informix 官方主要支持 RHEL / SUSE。
常见缺包:
sudo apt install \
libncurses5 \
libaio1 \
libpam0g \
libstdc++6
onstat -
onstat -g ses
onstat -g err
cat $INFORMIXDIR/tmp/*.log
如果你愿意,可以直接把完整报错贴出来(最好中英都贴),我可以:
你可以直接回:
“报错是:XXXX,我在 Ubuntu 上做 XXX”