Docker 创建 db2 10.0.5.5

docker run -d --name db2 \
   --privileged=true \
   -p 51000:50000 \
   -e DB2INST1_PASSWORD=ArUMn63jyb9Z8il5 \
   -e LICENSE=accept \
   -v /var/lib/db2:/database \
   -d ibmoms/db2express-c:10.5.0.5-3.10.0 \
   db2start

docker exec -it db2 bash
chmod 777 database
# 查看缺省的dbpath
su db2inst1
db2 get dbm cfg| grep -i dbpath
# 创建存储目录
cd /database
mkdir data
mkdir path
mkdir logs
# 查看本机所有的数据库编目
db2 list db directory
# /etc/group 文件包含所有组 /etc/shadow和/etc/passwd系统存在的所有用户名
# 新建用户 dbuser1 到组 db2inst1 (-m 创建主目录,-g 指定用户组) 
useradd -m -g db2inst1 dbuser1 
# 将用户 dbuser1 增加到组 db2iadm1 (-a append -G 补充到组)
usermod -a -G db2iadm1 dbuser1
# 修改dbuser1 用户密码
passwd dbuser1
# 查看db2字符集
# SELECT NAME,value FROM SYSIBMADM.DBCFG WHERE NAME LIKE '%code%';
# 查看db2所属区域
# SELECT NAME,value FROM SYSIBMADM.DBCFG WHERE NAME LIKE '%territory%';
#建立数据库 mydb ,并指定字符集类型为GBK和区域为CN。
su db2inst1
db2 create database mydb ON /database/data DBPATH ON /database/path USING CODESET GBK TERRITORY CN
# 修改日志路径
db2 update db cfg for mydb using newlogpath /database/logs
# 激活数据库
db2 activate db mydb
# 使用db2inst1用户连接 mydb 数据库
su db2inst1
db2 connect to mydb
# 授权链接权限
db2 grant connect on database to user dbuser1 
# 授予dbadm权限
db2 grant dbadm on database to user dbuser1
# 提交修改的容器
docker ps -a
docker commit d3d44707c1ae db2express-c:10.5.0.5
# 执行save命令持久化镜像,这里运行的目的是保存catalog db的信息,以便每次重启容器后可以直接访问mydb数据库
docker save db2express-c:10.5.0.5>/home/db2express-c.tar
# 停止 删除 已启动的容器
docker stop db2
docker rm db2
# 重启新的image
docker run -d --name db2 \
    --privileged=true \
    -p 51000:50000 \
    -e DB2INST1_PASSWORD=ArUMn63jyb9Z8il5 \
    -e LICENSE=accept \
    -v /var/lib/db2:/database \
    -d db2express-c:10.5.0.5 \
    db2start
# 为该用户创建schema
db2 create schema dbuser1 AUTHORIZATION dbuser1  
# 设置当前数据库schema
db2 connect to mydb
db2 set current schema dbuser1
# 使用dbuser1连接dbuser1 (db2 connect to [database name] user [user] using [password])
db2 connect to mydb user dbuser1 using dbuser1
# 从宿主机拷贝至容器
# docker cp /usr/local/src/download/db/dbuser2.sql db2:/tmp/db/dbuser2.sql
# 执行sql文件
#(1)db2 -tvf *.sql,此命令执行*.sql脚本中间出现错误不断开;
#(2)db2 -txvf *.sql,此命令执行*.sql脚本中间出现错误会断开,,并提示错误;


# db2iadm1 管理实例的组,db2fadm1 安装实例的组 db2asgrp,安装DB2 administration server的组
# db2概念:https://www.jianshu.com/p/e1f38505f789
# instance, 同一台机器上可以安装多个DB2 instance。
# database, 同一个instance下面可以创建有多个database。
# schema, 同一个database下面可以配置多个schema。
# 所有的数据库对象包括table、view、sequence,etc都必须属于某一个schema。
# DB2的schema对象和user对象
# 每一个DB2授权用户都有一个对应的schema,其名字和用户名相同;当然也可以再创建新的schema;这样DB2中user和schema是一种一对多的关系。
# 每一个schema都有一个属主(即所属用户),这个属主在创建scheme的时候指定,如果没有指定值,缺省即当前用户,也就是说谁创建了这个schema,那么这个schema就属于谁。


 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值