在 Ubuntu 上连接 Informix 失败,常见原因集中在 客户端配置、环境变量、网络、用户权限 这几类。下面按“排查顺序”给你一套实用方案。
先明确是哪一步失败,有助于定位:
isql / dbaccess 直接报错?Ubuntu 上常用:
检查:
which dbaccess
which isql
没有的话需要安装 CSDK。
在 ~/.bashrc 或连接脚本中加入:
export INFORMIXDIR=/opt/IBM/informix
export INFORMIXSERVER=your_server_name
export PATH=$INFORMIXDIR/bin:$PATH
export LD_LIBRARY_PATH=$INFORMIXDIR/lib:$INFORMIXDIR/lib/esql:$LD_LIBRARY_PATH
然后:
source ~/.bashrc
文件位置:
$INFORMIXDIR/etc/sqlhosts
示例:
mydbserver onsoctcp 192.168.1.10 9088
常见错误:
测试网络:
telnet 192.168.1.10 9088
或
nc -vz 192.168.1.10 9088
原因:INFORMIXSERVER 不匹配
✅ 解决:
INFORMIXSERVER 必须与服务器 onconfig 中一致sqlhosts 中 server name 必须完全一致原因:
✅ 解决:
sysusers原因:
✅ 解决:
sudo ufw allow 9088
服务器侧也要放行。
原因:字符集不一致
✅ 解决:
export CLIENT_LOCALE=zh_CN.utf8
export DB_LOCALE=zh_CN.utf8
dbaccess - -
> connect to 'mydb@mydbserver';
成功会进入 SQL 提示符。
jdbc:informix-sqli://192.168.1.10:9088/mydb:INFORMIXSERVER=mydbserver
ifxjdbc.jar 在 classpathlibifsql.so 等库如果你愿意,可以把 具体报错信息 + 使用方式(dbaccess / JDBC / Python) 发出来,我可以直接帮你定位到根因。