这里写自定义目录标题
- 一、db2prereqcheck预检查
- 二 、解压完成后,进入当前目录下刚刚解压出来的expc文件夹,通过ll命令可以看到,有一个叫db2prereqcheck的文件,这个文件是用于db2安装预检查的,命令如下:
- 1. /lib/libpam.so*
- 2. sg3_utils / sg_persist
- 关闭SELinux
- 重启后再次执行预检查程序。
- db_install安装
- 三、创建用户组和用户
- 四、创建实例
- 五、远程服务配置:
一、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
二 、解压完成后,进入当前目录下刚刚解压出来的expc文件夹,通过ll命令可以看到,有一个叫db2prereqcheck的文件,这个文件是用于db2安装预检查的,命令如下:
# 进入解压出来的文件夹
cd expc/
# 查看当前所在目录下的所有文件信息
ll
# 执行预检查程序
./db2prereqcheck
预检查程序显示未满足的条件,这里出现了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时提示没有可以安装的依赖包。
2. 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-*
关闭SELinux
这里我使用永久关闭,百度有临时关闭的方法~
使用vi命令编辑/etc/selinux/config
vi /etc/selinux/config
将SELINUX=enforcing注释,新增一行SELINUX=disabled。:wq保存退出
设置完成后,记得使用reboot命令重启。
重启后再次执行预检查程序。
# 执行预检查程序
./db2prereqcheck
如下图所示,刚刚出现的问题已经解决了!
db_install安装
还是在刚刚的expc文件夹,运行db2_install进行安装:
./db2_install
这里有询问是否安装到缺省目录。我这里选择是,当然,也可以输入 否 ,安装到指定的目录。
三、创建用户组和用户
创建实例前,需要先创建用户组和用户
# 创建两个组
groupadd db2adm1
groupadd db2fen1
# 创建两个用户,并将他们分配给刚刚创建好的用户组
# 在这里-d指定目录,-m 表示如果用户目录不存在,则创建, -g指定用户组
useradd -d /home/db2inst1 -m db2inst1 -g db2adm1
useradd -d /home/db2fenc1 -m db2fenc1 -g db2fen1
给db2inst1和db2fenc1两个账户设置密码,如果没有设置密码后面会出现问题。
tip: 密码不能小于8位,且不能与用户名相同
passwd db2inst1
passwd db2fenc1
四、创建实例
首先进入我们前面的安装路径/opt/ibm/bd2/V10.5下的/instance/目录。在这个目录下,用ls或ll命令可以看到一个叫db2icrt的命令。他是db2 instance create 的缩写,我们用这个命令来创建一个实例。
cd /opt/ibm/bd2/V10.5/instance/
ll
# 创建一个叫db2inst1的实例
./db2icrt -u db2fenc1 db2inst1
验证是否创建成功
# 切换用户
su - db2inst1
# 启动数据库实例
db2start
# 在实例中创建数据库
db2sampl # 创建一个DB2SAMPL样板库
# 或
db2 create create db wellsdb # 用db2的命令来创建数据库,这里的wellsdb是数据库名,可改成自己的
# 查看当前实例下所存在的数据库
db2 list db directory
# 连接到数据库
db2 connect to wellsdb
# 查看当前数据库下的表空间有哪些,可以看到,我的数据库中有3个表空间,id 分别为 0,1,2
db2 list tablespaces
执行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 terminate
db2stop
tip:
terminate 、db2stop、db2start三个命令的意义
db2 terminate
断开当前与数据库的连接
终止后台对应的db2bp进程
db2start/db2stop
启动/停止数据库服务器
五、远程服务配置:
- 配置service
root下执行 vi /etc/services,添加对外服务,格式为:服务名 端口/连接方式
DB2_db2inst1 50000/tcp
- 更新db2配置,以db2管理员身份执行
db2set DB2COMM=tcpip
db2 update database manager configuration using svcename DB2_db2inst1(步骤1中配置的services name)
配置完成后需重启