为确保数据库安全,需创建专属用户和组管理Informix文件:
groupadd informix # 创建informix用户组
useradd -g informix -d /opt/informix -m informix # 创建informix用户,指定主目录为/opt/informix
passwd informix # 设置用户密码
chmod 755 /opt/informix # 设置安装目录权限
编辑informix用户的~/.bash_profile文件,添加以下关键变量(根据实际路径调整):
export INFORMIXDIR=/opt/informix # Informix安装根目录
export INFORMIXSERVER=ifxserver # 数据库服务器实例名
export ONCONFIG=onconfig.$INFORMIXSERVER # 配置文件名(如onconfig.ifxserver)
export INFORMIXSQLHOSTS=$INFORMIXDIR/etc/sqlhosts.$INFORMIXSERVER # SQL主机配置文件
export PATH=$INFORMIXDIR/bin:$PATH # 添加Informix命令到PATH
export LD_LIBRARY_PATH=$INFORMIXDIR/lib:$LD_LIBRARY_PATH # 添加库文件路径
使配置生效:
source ~/.bash_profile
mkdir -p /opt/informix # 主安装目录
chown -R informix:informix /opt/informix # 设置属主和权限
从IBM官方网站下载适用于Linux的Informix安装包(如ids-11.70.FC7TL.linux-x86_64.tar),并传输至/opt/informix目录。
cd /opt/informix
tar -xvf ids-*.tar # 解压安装包
切换至informix用户,执行安装:
su - informix
cd /opt/informix
./ids_install # 图形化安装向导
按照提示完成安装(选择“典型安装”即可满足大多数场景)。
cd $INFORMIXDIR/etc
cp onconfig.std onconfig.$INFORMIXSERVER # 如onconfig.ifxserver
vi onconfig.$INFORMIXSERVER # 编辑关键参数
需修改的核心参数:
ROOTPATH:Root dbspace路径(数据库核心文件存储位置),如/opt/informix/dbs/rootdbs;DBSERVERNAME:数据库服务器实例名(需与INFORMIXSERVER变量一致),如ifxserver;NETTYPE:网络类型(支持ipcshm共享内存或soctcpTCP/IP),如soctcp,1,50,CPU(TCP/IP模式,1个poll线程,50个工作线程);SHMVIRTSIZE:共享内存初始大小(单位KB,建议≥80000);PHYSFILE:物理日志文件大小(单位KB,建议≥20000);LOGFILES/LOGSIZE:逻辑日志文件数量及大小(如LOGFILES 6、LOGSIZE 2000)。vi $INFORMIXDIR/etc/sqlhosts.$INFORMIXSERVER
添加以下内容(根据网络模式选择):
# 共享内存模式(本地连接)
ifxserver onipcshm localhost
# TCP/IP模式(远程连接)
ifxserver_tcp onsoctcp localhost sqlexec
其中:
ifxserver:数据库服务器名(与DBSERVERNAME一致);ifxserver_tcp:TCP/IP模式下的别名;onsoctcp:TCP/IP协议;localhost:主机名(远程连接需替换为实际IP);sqlexec:/etc/services中定义的TCP端口(默认1526)。编辑/etc/services,添加Informix服务端口:
vi /etc/services
添加以下行:
sqlexec 1526/tcp # Informix SQLExec服务(TCP)
sqlexec 1526/udp # Informix SQLExec服务(UDP)
sqlexed 1528/tcp # Informix SQLExec调试服务(可选)
mkdir -p /opt/informix/dbs # 数据库空间目录
touch /opt/informix/dbs/rootdbs # Root dbspace文件
chown -R informix:informix /opt/informix/dbs # 设置属主和权限
chmod 660 /opt/informix/dbs/* # 限制文件权限
oninit -ivy # 初始化数据库(-i:初始化,-v:显示详细日志,-y:自动确认)
常见错误解决:
sqlhosts中的端口号或停止占用进程;/opt/informix及子目录属主为informix。onstat -i # 查看数据库服务器状态
若输出包含“On-Line”(在线)字样,则表示初始化成功。
使用dbaccess工具连接(本地连接无需密码,远程需配置认证):
dbaccess $INFORMIXSERVER - # 连接到默认服务器
输入以下SQL验证连接:
SELECT DBSERVERNAME FROM SYSDUMMY1;
若返回ifxserver(或自定义的DBSERVERNAME),则连接成功。
将Informix启动脚本复制到/etc/init.d,并添加系统服务:
sudo cp $INFORMIXDIR/etc/oninit /etc/init.d/informix
sudo chmod +x /etc/init.d/informix
sudo chkconfig --add informix # CentOS/RHEL
sudo systemctl enable informix # Ubuntu/Debian(systemd)
sqlhosts文件,添加远程主机配置(如ifxserver_remote onsoctcp 192.168.1.100 sqlexec);sudo firewall-cmd --add-port=1526/tcp --permanent # CentOS/RHEL
sudo ufw allow 1526/tcp # Ubuntu/Debian
sudo firewall-cmd --reload
dbaccess demo - # 进入demo数据库(若未安装,可通过Informix安装介质添加)
或使用onspaces命令创建自定义dbspace:
onspaces -c -d datadbs -p /opt/informix/dbs/datadbs -o 0 -s 500000 -k 8k # 创建数据dbspace
$INFORMIXDIR、/opt/informix/dbs等)必须属主为informix,权限为660(文件)或755(目录);/etc/services中定义的端口(如1526)未被其他服务占用;$INFORMIXDIR/logs目录下的日志文件,避免磁盘空间耗尽;