日常工作中需要用到DB2数据库(虽然很少遇到,但是总不能不会啊),所以打算在虚拟机上搭一套环境练手。折腾了蛮久,勉强算是能用了,做一下记录,供日后回顾。
v9.7_linuxx64_server.tar.gz、db2ese_c.lic
cd server
.\db2_install
安装时我没使用默认的路径,手动修改路径为/home/db2。--PS:我也没搞懂这边为什么要用root安装,存疑,回头试试用别的用户。
添加环境变量
DB2安装完成后没有自动添加环境变量,需要手动添加。为了偷懒,我直接修改了/etc/profile文件,在export path前加了一句
PATH=$PATH:/home/db2/bin:/home/db2/adm
groupadd -g 2000 db2iadm1
groupadd -g 2001 db2fadm1
useradd -m -g db2iadm1 -d /home/db2inst1 db2inst1
useradd -m -g db2fadm1 -d /home/db2fenc1 db2fenc1
passwd db2inst1
passwd db2fenc1
db2licm -a db2ese_c.lic
cd /home/db2/instance
./db2icrt -p 50000 -u db2fenc1 db2inst1
su - db2inst1
db2sampl
db2start
db2 connect to sample
db2 "select * from staff"
das管理服务器我没有安装,虚拟机也不用远程管理的,懒了。
vi /etc/services
在最后一行添加
db2inst1 50000/tcp
su - db2inst1
db2set DB2_EXTENDED_OPTIMIZATION=ON
db2set DB2_DISABLE_FLUSH_LOG=ON
db2set AUTOSTART=YES
db2set DB2_STRIPED_CONTAINERS=ON
db2set DB2_HASH_JOIN=Y
db2set DB2COMM=tcpip
db2set DB2_PARALLEL_IO=*
db2set DB2CODEPAGE=819
db2 get dbm cfg|grep SVCENAME
至此DB2数据库安装并创建完成。
DB2的用户跟oracle完全不同,oracle可以使用create user来新建用户,而DB2的用户直接就是使用的操作系统的用户,也就是如果想添加多个用户,你需要在操作系统上添加多个用户。
useradd ****
自己练手,先执行创建数据库语句(貌似刚刚也不需要创建sample库的)
CREATE DATABASE *** USING CODESET UTF-8 TERRITORY US COLLATE USING SYSTEM USER TABLESPACE MANAGED BY DATABASE USING (FILE '/home/db2inst1/NODE0000/***/sdetbsp' 51200);
再导入原先准备好的数据库脚本
su - db2inst1
db2 connect to *** user *** using ***
db2 -tvf *.sql -z input.log
千万注意,此处必须先使用需要的用户(user using)连接至数据库,否则后续任务就默认以db2inst1用户来执行了。
执行完成后使用工具DbVisualizer 9.5.7(DB2工具真心难找,使用sqldbx需要client server,最近IBM竟然因为US的出口管制不让从官网下载了)连接进行测试,连接时需要选择数据库类型、服务器地址、database-name、端口(5000,也就是前面加到/etc/services里的记录)、用户名密码。
使用工具连接成功!明天搭建web环境测试一下功能是不是可以正常运行。