stop iptables
stop selinux
创建组和用户:
groupadd -g 2000 informix
useradd -g informix -u 2000 informix
cat /etc/group
cat /etc/passwd
passwd informix
grep informix /etc/group
grep informix /etc/passwd
update hostname:
vi /etc/sysconfig/network
修改:HOSTNAME=ifx1
配置主机名解析:
vi /etc/hosts
192.168.10.100 ifx1 ifx1.abc.com
使用vmware-tools上传informix软件,进行安装
cd /cdrom
mkdir /vmtools
cp *.tar.gz /vmtools
cd /cdtools
tar -xzvf *.tar.gz
./*.pl
informix软件安装:
安装使用root用户,管理使用informix用户
安装的目录结构:/opt/IBM
权限:
mkdir -p /opt/IBM
chgrp informix /opt/IBM
chown informix /opt/IBM
(chown informix:informix /opt/IBM)
ids install:
cd /soft
./ids_install -i swing
安装的时候现在OAT(open admin tool):
用户admin,密码admin,端口8080
设置用户变量:informix
vi ~/.bash_profile
export INFORMIXDIR=/opt/IBM/informix
export INFORMIXSERVER=inst1
export PATH=$INFORMIXDIR/bin:.:$PATH
export ONCONFIG=onconfig.inst1
12、配置实例:一个实例可以管理多个数据库,一个数据库要属于某个实例,一个服务器上可以有多个实例
配置一个实例需要的条件
(1:informix)要有配置文件(参数文件):名称可任意(onconfig.inst1),在这个配置文件中会有一系列的键值对。配置文件可以从模板文件中拷贝
cd /opt/IBM/informix/etc
ls onconfig.*(onconfig.std)
cp onconfig.std onconfig.inst1
(2:informix)修改配置文件:
ROOTPATH /dbs/rootdbs
LTAPEDEV /dev/null
DBSERVERNAME inst1
NETTYPE soctcp,1,50,CPU
(3:root)设置chunk:一个数据库至少要有一个dbspace,一个dbspace至少要有一个chunk,默认的dbspace是rootdbs
给rootdbs设置chunk(操作系统文件或者裸设备)
如果是操作系统文件,文件是一个空文件(不是目录),权限必须是660
mkdir -p /dbs
chown informix:informix /dbs
chmod 770 /dbs (informix用户和组有完全权限)
cd /dbs
touch rootdbs
chown informix:informix rootdbs
chmod 660 rootdbs
(4:informix)配置网络设置:sqlhosts
位置:/opt/IBM/informix/etc
从模板文件中拷贝
cd /opt/IBM/informix/etc
cp sqlhosts.std sqlhosts
修改sqlhosts文件:修改最后一行
instl onsoctcp 192.168.109.129 60000
(5:informix)初始化实例:
oninit -ivy
i:初始化(只需要做一次,重复做会删除用户的东西)
v:verbose显示详细信息
y;say yes
(6)检查实例的状态:
ps -aux|grep oninit
netstat -an|grep 60000
重启系统验证 reboot
oninit -vy
13:客户端工具 使用dbaccess字符界面的工具
dbaccess
(1)基于字符界面的菜单
(2)直接运行命令
运行命令,交互模式
dbaccess - -
create database test2;
database test2;
create table t1
(
id int,
name varchar(20),
);
insert into t1 values(1,'u1');
select/update/delete^^^^^
ctrl+d 退回操作系统
连接特定的数据库:
dbaccess test2 -
info tables;
select * from t1;
insert into t1 values(3,'u3');
ctrl+d
或者
dbaccess - -
database test2;
dbaccess结合echo命令执行操作:
echo 'hello world'
echo "select * from t1"|dbaccess test2;
echo "create database test3" | dbaccess -
echo "create table tl(id int)" | dbaccess test3;
echo "insert into tl values (1)" | dbaccess test3;
echo "select * from tl" | dbaccess test3;
读取外部脚本:
cd
vi test5.sql
create database test4;
database test4;
create table t1
(
id int
);
insert into t1 values (1);
select * from t1;
dbaccess - /home/informix/test4.sql
dbaccess - -
在这个环境下支持调用操作系统命令:! cmd
查看数据库状态:onstat -
启动数据库:oninit -vy
创建脚本:
vi /home/informix/2.sql
create database a1;
database a1;
create table t1
(
id serial not null,
name varchar(20)
);
insert into t1 (name) values('name1');
insert into t1 (name) values('name2');
select * from t1;
创建新实例(和前面的inst1创建类似,注意修改如下):inst2
vi .bash_profile
修改两个值:
ONCONFIG
INFORMIXSERVER
sqlhosts里面修改:
端口61000
onconfig.inst2里面修改:
ROOTPATH /dbs/rootdbsinst2
DBSERVERNAME inst2
SERVERNUM 1 ---编号唯一。很重要,要不当前实例无法启动,或者其他实例无法启动
vi inst2.sh
export INFORMIXSERVER=inst2
export ONCONFIG=onconfig.inst2
要操作inst2的时候,执行上面的脚本文件:
. ./inst2.sh
查看当前实例有哪些数据库,从系统数据库中查询:sysmaster
dbaccess - -
database sysmaster
select name from sysdatabases;
echo "select name from sysdatabases" | dbaccess sysmaster
查看数据库中有哪些表:
select tabname from systables; --系统表和用户表
只查看用户表:
select tabname from systables where tabid > 99;
info tables;
echo "select tabname from systables where tabid > 99" | dbaccess test1;
查看表的字段信息:
echo "info columns for t1" | dbaccess d1;
-------------------------------------------
whoami (root/informix)
echo $INFORMIXDIR
cd $INFORMIXDIR
echo $INFORMIXSERVER
echo $ONCONFIG
-------------------------------------------
关闭实例:
onmode -ky
启动实例:
oninit -vy
在informix数据库中对象的引用:
创建用户:用户是操作系统用户
useradd -g informix -u 2001 ifx1
passwd ifx1 <<EOF
abc
abc
EOF
验证用户:
su - informix
whoami
su - ifx1
whoami
su - informix
whoami
dbaccess - -
create database d5;
database d5;
create table t1
(
id int
);
insert into t1 values(1);
select * from t1;
select * from informix.t1;
create database d6;
database d6;
create table t2
(
id int
);
insert into t2 values(100);
select * from t2;
select * from informix.t2;
select * from t1;---error
select * from informix.t1;----error
select * from d5:t1;
select * from d5:informix.t1;
database d5;
select * from t2;---error
select * from informix.t2;----error
select * from d6:t2;
select * from d6:informix.t2;
ctrl+d
dbaccess - -
connect to '@inst2' ;--连接特定的实例
database d5;
select name from sysmaster:sysdatabases;
connect to '@inst1';
select name from sysmaster:sysdatabases;
informix数据库中通过create database命令创建的数据库是不记录日志的。
通过dbname:username.tabname方式访问时要求两个数据库有相同的日志模式。
database d5;
select * from d1:informix.t1; --success
database sysmaster;
select * from d1:informix.t1; --fail
database d5;
select * from d1@inst2:informix.tl; --在informix数据库中的全称引用(可以跨越实例访问)
stop selinux
创建组和用户:
groupadd -g 2000 informix
useradd -g informix -u 2000 informix
cat /etc/group
cat /etc/passwd
passwd informix
grep informix /etc/group
grep informix /etc/passwd
update hostname:
vi /etc/sysconfig/network
修改:HOSTNAME=ifx1
配置主机名解析:
vi /etc/hosts
192.168.10.100 ifx1 ifx1.abc.com
使用vmware-tools上传informix软件,进行安装
cd /cdrom
mkdir /vmtools
cp *.tar.gz /vmtools
cd /cdtools
tar -xzvf *.tar.gz
./*.pl
informix软件安装:
安装使用root用户,管理使用informix用户
安装的目录结构:/opt/IBM
权限:
mkdir -p /opt/IBM
chgrp informix /opt/IBM
chown informix /opt/IBM
(chown informix:informix /opt/IBM)
ids install:
cd /soft
./ids_install -i swing
安装的时候现在OAT(open admin tool):
用户admin,密码admin,端口8080
设置用户变量:informix
vi ~/.bash_profile
export INFORMIXDIR=/opt/IBM/informix
export INFORMIXSERVER=inst1
export PATH=$INFORMIXDIR/bin:.:$PATH
export ONCONFIG=onconfig.inst1
12、配置实例:一个实例可以管理多个数据库,一个数据库要属于某个实例,一个服务器上可以有多个实例
配置一个实例需要的条件
(1:informix)要有配置文件(参数文件):名称可任意(onconfig.inst1),在这个配置文件中会有一系列的键值对。配置文件可以从模板文件中拷贝
cd /opt/IBM/informix/etc
ls onconfig.*(onconfig.std)
cp onconfig.std onconfig.inst1
(2:informix)修改配置文件:
ROOTPATH /dbs/rootdbs
LTAPEDEV /dev/null
DBSERVERNAME inst1
NETTYPE soctcp,1,50,CPU
(3:root)设置chunk:一个数据库至少要有一个dbspace,一个dbspace至少要有一个chunk,默认的dbspace是rootdbs
给rootdbs设置chunk(操作系统文件或者裸设备)
如果是操作系统文件,文件是一个空文件(不是目录),权限必须是660
mkdir -p /dbs
chown informix:informix /dbs
chmod 770 /dbs (informix用户和组有完全权限)
cd /dbs
touch rootdbs
chown informix:informix rootdbs
chmod 660 rootdbs
(4:informix)配置网络设置:sqlhosts
位置:/opt/IBM/informix/etc
从模板文件中拷贝
cd /opt/IBM/informix/etc
cp sqlhosts.std sqlhosts
修改sqlhosts文件:修改最后一行
instl onsoctcp 192.168.109.129 60000
(5:informix)初始化实例:
oninit -ivy
i:初始化(只需要做一次,重复做会删除用户的东西)
v:verbose显示详细信息
y;say yes
(6)检查实例的状态:
ps -aux|grep oninit
netstat -an|grep 60000
重启系统验证 reboot
oninit -vy
13:客户端工具 使用dbaccess字符界面的工具
dbaccess
(1)基于字符界面的菜单
(2)直接运行命令
运行命令,交互模式
dbaccess - -
create database test2;
database test2;
create table t1
(
id int,
name varchar(20),
);
insert into t1 values(1,'u1');
select/update/delete^^^^^
ctrl+d 退回操作系统
连接特定的数据库:
dbaccess test2 -
info tables;
select * from t1;
insert into t1 values(3,'u3');
ctrl+d
或者
dbaccess - -
database test2;
dbaccess结合echo命令执行操作:
echo 'hello world'
echo "select * from t1"|dbaccess test2;
echo "create database test3" | dbaccess -
echo "create table tl(id int)" | dbaccess test3;
echo "insert into tl values (1)" | dbaccess test3;
echo "select * from tl" | dbaccess test3;
读取外部脚本:
cd
vi test5.sql
create database test4;
database test4;
create table t1
(
id int
);
insert into t1 values (1);
select * from t1;
dbaccess - /home/informix/test4.sql
dbaccess - -
在这个环境下支持调用操作系统命令:! cmd
查看数据库状态:onstat -
启动数据库:oninit -vy
创建脚本:
vi /home/informix/2.sql
create database a1;
database a1;
create table t1
(
id serial not null,
name varchar(20)
);
insert into t1 (name) values('name1');
insert into t1 (name) values('name2');
select * from t1;
创建新实例(和前面的inst1创建类似,注意修改如下):inst2
vi .bash_profile
修改两个值:
ONCONFIG
INFORMIXSERVER
sqlhosts里面修改:
端口61000
onconfig.inst2里面修改:
ROOTPATH /dbs/rootdbsinst2
DBSERVERNAME inst2
SERVERNUM 1 ---编号唯一。很重要,要不当前实例无法启动,或者其他实例无法启动
vi inst2.sh
export INFORMIXSERVER=inst2
export ONCONFIG=onconfig.inst2
要操作inst2的时候,执行上面的脚本文件:
. ./inst2.sh
查看当前实例有哪些数据库,从系统数据库中查询:sysmaster
dbaccess - -
database sysmaster
select name from sysdatabases;
echo "select name from sysdatabases" | dbaccess sysmaster
查看数据库中有哪些表:
select tabname from systables; --系统表和用户表
只查看用户表:
select tabname from systables where tabid > 99;
info tables;
echo "select tabname from systables where tabid > 99" | dbaccess test1;
查看表的字段信息:
echo "info columns for t1" | dbaccess d1;
-------------------------------------------
whoami (root/informix)
echo $INFORMIXDIR
cd $INFORMIXDIR
echo $INFORMIXSERVER
echo $ONCONFIG
-------------------------------------------
关闭实例:
onmode -ky
启动实例:
oninit -vy
在informix数据库中对象的引用:
创建用户:用户是操作系统用户
useradd -g informix -u 2001 ifx1
passwd ifx1 <<EOF
abc
abc
EOF
验证用户:
su - informix
whoami
su - ifx1
whoami
su - informix
whoami
dbaccess - -
create database d5;
database d5;
create table t1
(
id int
);
insert into t1 values(1);
select * from t1;
select * from informix.t1;
create database d6;
database d6;
create table t2
(
id int
);
insert into t2 values(100);
select * from t2;
select * from informix.t2;
select * from t1;---error
select * from informix.t1;----error
select * from d5:t1;
select * from d5:informix.t1;
database d5;
select * from t2;---error
select * from informix.t2;----error
select * from d6:t2;
select * from d6:informix.t2;
ctrl+d
dbaccess - -
connect to '@inst2' ;--连接特定的实例
database d5;
select name from sysmaster:sysdatabases;
connect to '@inst1';
select name from sysmaster:sysdatabases;
informix数据库中通过create database命令创建的数据库是不记录日志的。
通过dbname:username.tabname方式访问时要求两个数据库有相同的日志模式。
database d5;
select * from d1:informix.t1; --success
database sysmaster;
select * from d1:informix.t1; --fail
database d5;
select * from d1@inst2:informix.tl; --在informix数据库中的全称引用(可以跨越实例访问)