在 Ubuntu 上连接 IBM Informix 失败,原因通常集中在环境变量、网络配置、用户权限、驱动/客户端版本等方面。下面按最常见原因 → 排查方法 → 解决建议来说明。
Informix 客户端必须设置以下变量:
INFORMIXDIR=/opt/ibm/informix
INFORMIXSERVER=ol_informix
PATH=$INFORMIXDIR/bin:$PATH
LD_LIBRARY_PATH=$INFORMIXDIR/lib:$INFORMIXDIR/lib/esql
✅ 检查:
env | grep INFORMIX
❌ 如果没设置 → 连接必失败
文件位置:
$INFORMIXDIR/etc/sqlhosts
示例:
ol_informix onsoctcp 192.168.1.10 9088
常见错误:
✅ 测试端口:
telnet 192.168.1.10 9088
# 或
nc -vz 192.168.1.10 9088
在 数据库服务器 上检查:
onstat -
如果显示:
shared memory not initialized
说明数据库没启动。
启动:
oninit -vy
Informix 对 OS 用户有严格控制。
检查:
$INFORMIXDIR/etc/hosts.allow
$INFORMIXDIR/etc/hosts.deny
以及:
SELECT * FROM sysusers;
✅ Ubuntu 用户要和 Informix 用户权限匹配
(常见用 informix 用户连接)
Ubuntu 本机或服务器防火墙:
sudo ufw status
服务器端:
iptables -L
云服务器还要检查 安全组
检查:
$INFORMIXDIR/etc/odbc.ini
jdbc:informix-sqli://192.168.1.10:9088/testdb:INFORMIXSERVER=ol_informix
env | grep INFORMIXtelnet IP PORTonstat -(服务器端)sqlhostsisql 或 dbaccess 测试| 错误码 | 含义 |
|---|---|
| -908 | 网络不通 / sqlhosts 错 |
| -111 | 用户无权限 |
| -25507 | 服务器未启动 |
| -329 | 数据库不存在 |
| -1215 | 端口被占用 |
请你补充以下信息之一:
sqlhosts 内容(可打码 IP)我可以直接帮你定位到具体哪一步错了。