DB2在Linux下静默安装

前言

db2是IBM公司开发的一款重型数据库,和oracle数据库差不多,但就整体安装来看比Oracle安装要简单得多,本此安装db2的Linux环境是Redhat Enterprise Linux 8.6(没有安装图形化界面,所以全程安装都是敲命令,大多数程序员都喜欢的一种安装方式),db2的版本是V10.5(当前最新的版本是V11),下面就开始。

在这里插入图片描述

1. 下载并上传db2压缩包到Linux

db2下载地址
执行tar -zxvf v10.5_linuxx64_expc.tar.gz解压
在这里插入图片描述

IBM官网下载需要注册IBM账号,但是现在即使注册了,再点击下载链接时会重定向跳转,然后就没有然后了,进入不了下载页面,所以在这里提供db2下载(百度网盘保存的),将下载好的压缩包上传到Linux,我习惯上传到/usr/local/src目录下(上传的目录可以根据自己的喜好存放在哪里,这里没有特殊要求)

2. 检测db2安装环境

cd /usr/loca/src/expc目录下,执行 ./db2prereqcheck命令检查db2安装环境
在这里插入图片描述

(1)修复找不到libpam.so*
	yum install pam-devel.i686

(2)修复libstdc++.so.5(我这里就不修复了,这个不修复对使用DB2没有影响)

(3)禁用SELinux
	vim /etc/selinux/config文件,修改SELinux=disabled

(4)关闭防火墙服务并关闭随开机启动
	systemctl stop firewalld 
	systemctl disable firewalld
做完以上操作最好执行下init 0(或是reboot)重启下Linux系统.	

3. 安装db2数据库软件

cd /usr/local/src/expc目录下执行 ./db2_install 安装数据库程序

在这里插入图片描述

输入yes,回车

在这里插入图片描述

最后出现如下图所示表示db2安装成功

在这里插入图片描述

4. 配置db2数据库系统用户

groupadd db2adm1
groupadd db2fen1
useradd -d /home/db2inst1 -m db2inst1 -g db2adm1
chown -R db2inst1   /home/db2inst1/
useradd -d /home/db2fenc1 -m db2fenc1 -g db2fen1 
chown -R db2fenc1   /home/db2fenc1/
passwd   db2inst1
passwd   db2fenc1
这里密码都设置成123456

在这里插入图片描述

5. 创建数据库实例

cd /opt/ibm/db2/V10.5/instance/
# 创建一个叫db2inst1的实例
./db2icrt -u db2fenc1 db2inst1
如下图所示表示数据库实例创建成功

在这里插入图片描述

6. 配置TCP/IP通信服务

在/etc/services中添加以下内容
echo 'db2c_db2inst1   50010/tcp'  >>  /etc/services
cat /etc/services
如下图所示即可

在这里插入图片描述

7. 配置数据库

(1)配置数据库管理
切换到db2inst1用户
su - db2inst1
db2start
执行下面两个命令
db2 update dbm cfg using SVCENAME db2c_db2inst1
db2set DB2COMM=TCPIP

在这里插入图片描述

(2)创建数据库和表
查看实例
db2 get instance
创建数据库
db2 create database jamy using codeset GBK territory cn pagesize 8192
查看创建的数据库
db2 list db directory
连接到数据库
db2 connect to jamy
查看当前数据库下的表空间
db2 list tablespaces
创建表
db2 "create table tb_user(name varchar(50),age int,address varchar(200))"
查看表
db2 list tables

创建数据库
在这里插入图片描述
查看表空间
在这里插入图片描述
创建表
在这里插入图片描述

(3)数据库编目(不做这一步处理,数据库客户端无法连接上)
进入数据库操作
查找节点目录
db2 list node directory
查看数据库目录
db2 list db directory
编目节点
db2 catalog TCPIP  node n_131 remote 192.168.227.189 server 50010
编目数据库(这一步可以不做)
db2 catalog db jamy as jamy at node n_131

在这里插入图片描述

注意: 如果要取消可以进入下操作
取消数据库编目
db2 uncatalog db test
取消节点编目
db2 uncatalog db n_131

8. 启动和关闭数据库实例

(1) 启动 
db2start

(2) 关闭
db2 force application all
db2stop
或者是
db2stop force

9. 修改权限

以root用户依次修改每个实例的db2chpw、db2ckpw文件权限,如下操作,否则无法用客户端工具连接数据库,在 db2inst1/sqllib/security 目录下,检查 db2ckpw 和 db2chpw 文件的权限:
db2ckpw 的作用是用于检查 DB2 服务器上的用户标识和密码。由于 DB2 依赖于操作系统级别的认证,因此,当某个用户或应用程序连接到服务器上的数据库时,使用该进程验证用户标识和密码。当将 AUTHENTICATION 设置为 SERVER 时,或者当连接是从非安全的操作系统建立的时候,就会进行认证。验证权限需要检查 passwd 文件,ckpw 顾名思义就是 Check Password file 的含义,正因为如此,这个工具必须以 root 运行,需要远程连接时必须保证该权限
切换到root用户下:
su - root 
cd /home/db2inst1/sqllib/security/
ls -la 查看下,如果如图所示这样就不选要执行下面的命令,否则要执行下,不然会影响数据库客户端工具的连接
chown root db2chpw 
chown root db2ckpw 
chmod 4511 db2chpw 
chmod 4511 db2ckpw

在这里插入图片描述

10 数据库客户端和工具链接

这里我用的是Dbvisualizer工具,版本是12专业版
在这里插入图片描述

在这里插入图片描述
这里在点击连接之前最好重启下db2数据库

在这里插入图片描述
在这里插入图片描述
如图所示连接成功,tb_user就是我们刚才创建的表
在这里插入图片描述
在这里插入图片描述

11. 创建数据库多实例

其实在数据库服务器硬件比较好的情况完全可以在一台服务器上创建多个数据库实例,这样可以把服务器资源最大化利用起来,创建多实例其实就是在刚才的基础上把第4步到第十步在做一遍,具体操作如下,我就不做具体说明了:

#创建jamysong用户
useradd -d /home/jamysong -m jamysong -g db2adm1      
chown -R jamysong   /home/jamysong/
passwd  jamysong        #给jamyson用户设置密码

#创建数据库实例jamysong,实例名要与创建的用户名一致
cd /opt/ibm/db2/V10.5/instance/     
./db2icrt -u db2fenc1 jamysong

#配置TCP/IP通信服务      
echo 'db2c_jamysong   50020/tcp'  >>  /etc/services
cat /etc/services

#配置数据库
su - jamysong
db2start
db2 update dbm cfg using SVCENAME db2c_jamysong
db2set DB2COMM=TCPIP

#创建数据库(这里的数据库名可以自定义,不用非要和我这里的一样)
db2 get instance
db2 create database jamy using codeset GBK territory cn pagesize 8192
db2 list db directory
db2 connect to jamy
db2 list tablespaces

#创建表(这里的表名可以自定义,不用非要和我这里的一样)
db2 "create table tb_user(name varchar(50),age int,address varchar(200))"
db2 list tables

数据库编目(不做这一步处理,数据库客户端无法连接上)
db2 list node directory
db2 catalog TCPIP  node n_131 remote 192.168.227.189 server 50020
db2 catalog db jamy as jamy at node n_131
db2 list node directory

#重启数据库
db2stop force
db2start

在这里插入图片描述
在这里插入图片描述