一、db2prereqcheck预检查

首先进入到压缩包所在的目录,执行tar命令对.tar.gz压缩文件进行解压

# 解压到当前目录 
tar -zxvf v10.5_linuxx64_expc.tar.gz
# 后面加 -C 目录  可以指定需要解压到的目录。
# 如:tar -zxvf v10.5_linuxx64_expc.tar.gz -C /home/wells/soft

db2 db2cli 例子 db2 compare_linux

db2 db2cli 例子 db2 compare_db2 db2cli 例子_02

第一次解压的时候失败了,删了重新从网盘下了一次再解压,解压完成!

解压完成后,进入当前目录下刚刚解压出来的expc文件夹,通过ll命令可以看到,有一个叫db2prereqcheck的文件,这个文件是用于db2安装预检查的,命令如下:

# 进入解压出来的文件夹
cd expc/
# 查看当前所在目录下的所有文件信息
ll
# 执行预检查程序
./db2prereqcheck

db2 db2cli 例子 db2 compare_数据库_03

db2 db2cli 例子 db2 compare_检查程序_04

预检查程序显示未满足的条件,这里出现了4个问题。

  1. /lib/libpam.so*
    错误信息
英文:
	DBT3514W The db2prereqcheck utility failed to find the following 32-bit library file: "/lib/libpam.so*"
中文:
	DBT3514W db2prereqcheck 实用程序未能找到以下 32 位库文件:"/lib/libpam.so*"

解决方案:

yum install pam-devel.i686
yum install pam.i686

这里我只执行成功了yum install pam-devel.i686,执行yum install pam.i686时提示没有可以安装的依赖包。

db2 db2cli 例子 db2 compare_linux_05

  1. sg3_utils / sg_persist
    错误信息
英文:
	DBT3507E The db2prereqcheck utility failed to find the following package or file: "sg_persist".
	DBT3507E The db2prereqcheck utility failed to find the following package or file: "sg3_utils".
中文:
	DBT3507E db2prereqcheck 实用程序未能找到以下程序包或文件:"sg_persist"
	DBT3507E db2prereqcheck 实用程序未能找到以下程序包或文件:"sg3_utils"

解决方案:

yum install sg3_utils-*

运行一行解决两个!nice!

sg_persist也解决了

db2 db2cli 例子 db2 compare_数据库_06

 

openibd 缺少,可以不用安装。主要用于图形化界面的安装方式(./db2_install),可以使用./db2_install 命令行版安装跳过该驱动

  1. 关闭SELinux
    这里我使用永久关闭,百度有临时关闭的方法~
    使用vi命令编辑/etc/selinux/config
vi /etc/selinux/config

db2 db2cli 例子 db2 compare_db2 db2cli 例子_07

SELINUX=enforcing注释,新增一行SELINUX=disabled:wq保存退出

db2 db2cli 例子 db2 compare_linux_08

设置完成后,记得使用reboot命令重启。

重启后再次执行预检查程序。

# 执行预检查程序
./db2prereqcheck

如下图所示,刚刚出现的问题已经解决了!

db2 db2cli 例子 db2 compare_数据库_09

二、db_install安装

还是在刚刚的expc文件夹,运行db2_install进行安装:

./db2_install

这里有询问是否安装到缺省目录。我这里选择,当然,也可以输入 否 ,安装到指定的目录。

db2 db2cli 例子 db2 compare_linux_10

db2 db2cli 例子 db2 compare_数据库_11

三、创建用户组和用户

创建实例前,需要先创建用户组和用户

# 创建两个组
groupadd db2adml
groupadd db2fenl
# 创建两个用户,并将他们分配给刚刚创建好的用户组
# 在这里-d指定目录,-m 表示如果用户目录不存在,则创建, -g指定用户组
useradd -d /home/db2instl -m db2instl -g db2adml
useradd -d /home/db2fenc1 -m db2fencl -g db2fenl

db2 db2cli 例子 db2 compare_检查程序_12

db2instldb2fencl两个账户设置密码,如果没有设置密码后面会出现问题。

tip: 密码不能小于8位,且不能与用户名相同

passwd db2instl
passwd db2fencl

db2 db2cli 例子 db2 compare_linux_13

db2 db2cli 例子 db2 compare_数据库_14

现在可以创建实例啦~

首先进入我们前面的安装路径/opt/ibm/bd2/V10.5下的/instance/目录。在这个目录下,用lsll命令可以看到一个叫db2icrt的命令。他是db2 instance create 的缩写,我们用这个命令来创建一个实例。

cd /opt/ibm/db2/V10.5/instance/
ll
# 创建一个叫db2instl的实例
./db2icrt -u db2fencl db2instl

db2 db2cli 例子 db2 compare_检查程序_15

db2 db2cli 例子 db2 compare_检查程序_16

验证是否创建成功

# 切换用户
su - db2instl
# 启动数据库实例
db2start
# 查看当前实例下所存在的数据库 
db2 list db directory

db2 db2cli 例子 db2 compare_linux_17

# 连接到数据库
db2 connect to wellsdb

db2 db2cli 例子 db2 compare_db2 db2cli 例子_18

# 查看当前数据库下的表空间有哪些,可以看到,我的数据库中有3个表空间,id 分别为 0,1,2
db2 list tablespaces

db2 db2cli 例子 db2 compare_linux_19

执行sql语句

db2 "create table user(id int,name varchar(10))"
db2 "insert into user values(1,'wells')"
db2 "insert into user values(2,'974')"
db2 "select id,name from user"

db2 db2cli 例子 db2 compare_数据库_20

db2 db2cli 例子 db2 compare_检查程序_21

db2 db2cli 例子 db2 compare_检查程序_22

关闭数据库

db2 terminate
db2stop

db2 db2cli 例子 db2 compare_linux_23

tip:

terminate 、db2stop、db2start三个命令的意义

db2 terminate

  1. 断开当前与数据库的连接
  2. 终止后台对应的db2bp进程

db2start/db2stop

启动/停止数据库服务器

 

 客户端连接配置:

db2set -all

如果没有DB2COMM=TCPIP

则需要添加执行

db2set DB2COMM=TCPIP

 

然后确认执行 db2 get dbm cfg | grep "SVCENAME"

db2 db2cli 例子 db2 compare_检查程序_24

 

 

如果是上图结果,则需要执行

db2 update database manager configuration using svcename db2c_db2instl

切换root用户

vi /etc/services

增加:

db2c_db2instl 50000/tcp

db2c_db2instl 50000/udp

 

切换db2instl 用户

重启db2服务

db2stop force

db2start

努力让自己变得不那么low