温馨提示×

linux informix连接失败怎么办

小樊
44
2026-10-19 15:25:45
栏目: 智能运维

在 Linux 下连接 IBM Informix 数据库失败,原因很多,建议按下面顺序逐项排查。


一、先确认基本信息是否正确

检查连接参数是否准确:

  • 数据库服务器名(INFORMIXSERVER)
  • 主机 IP / 主机名
  • 端口号(通常是 sqlexec 服务)
  • 用户名 / 密码
  • 数据库名

示例:

dbaccess dbname@servername -

二、检查 Informix 服务是否在运行

在数据库服务器上执行:

onstat -
  • 正常:显示 On-Line
  • 失败:说明数据库未启动

启动数据库:

oninit -v

三、检查网络连通性

从客户端 Linux 测试:

ping 数据库IP
telnet 数据库IP 端口

例如:

telnet 192.168.1.10 9088
  • 连不上 → 防火墙或网络问题
  • 能连 → 网络和端口正常

四、检查 sqlhosts 配置

客户端 /etc/sqlhosts 或 $INFORMIXDIR/etc/sqlhosts:

示例:

infserver    onsoctcp    192.168.1.10    9088

注意:

  • 协议(onsoctcp / olsoctcp)
  • 主机名能被解析

测试:

nslookup 192.168.1.10

五、检查环境变量

客户端必须设置:

export INFORMIXDIR=/opt/informix
export INFORMIXSERVER=infserver
export PATH=$INFORMIXDIR/bin:$PATH
export LD_LIBRARY_PATH=$INFORMIXDIR/lib

验证:

env | grep INFORMIX

六、常见错误及处理

1. -908 / -930

无法连接到数据库服务器

原因:

  • 服务没开
  • sqlhosts 错
  • 端口不通

2. -951

用户或密码错误

3. -111

网络不可达

4. -25596

协议不匹配


七、查看日志

服务器端日志:

$INFORMIXDIR/tmp/online.log

客户端可加调试:

export INFORMIXCONTIME=5
export INFORMIXCONRETRY=2

八、防火墙 / SELinux

  • 关闭或放通端口
firewall-cmd --add-port=9088/tcp --permanent
firewall-cmd --reload
  • SELinux 可临时测试:
setenforce 0

九、快速自检清单

✅ 服务在跑
✅ 端口通
✅ sqlhosts 正确
✅ 环境变量正确
✅ 用户名密码正确


如果你愿意,可以把 具体报错码(如 -908、-951) 和 连接方式(dbaccess / JDBC / ODBC) 发出来,我可以更精准帮你定位。

0 踩