您的位置:首页 > 服务器 > > 正文

docker怎样安装mysql8(docker-compose安装db2数据库操作)

更多 时间:2022-01-14 02:19:13 类别:服务器 浏览量:2280

docker怎样安装mysql8

docker-compose安装db2数据库操作

db2数据库在宿主机直接安装比较麻烦,而且涉及用户和权限也不方便,所以采用docker安装db2数据库,这样做的好处是便于数据库的管理和网络隔离,网上一般都是docker直接run的这种不便于后期修改,我们依然采用docker-compose文件来安装db2数据库。

1、编写docker-compose文件,会自动下载数据库镜像

此文件自己创建一个文件夹放就可以了

  • version: "2.2"
    services:
     db2:
     image: ibmcom/db2
     container_name: db211.5
     privileged: true
     environment:
     LICENSE: accept
     DB2INST1_PASSWORD: 你的密码
     DBNAME: TESTDB
     volumes:
     - ./db2data:/database
     ports:
     - 50000:50000
    
  • 2、查看安装日志等待db2初始化完成,可能需要几分钟

  • #执行docker-compose开始安装
    docker-compose up -d
    #查看安装日志
    docker-compose logs
    #差不多到创建完TESTDB的时候就安装好了
    
  • 3、进入db2数据库容器创建自己的数据库

  • #进入容器
    docker exec -it db211.5 bash
    #切换到db2inst1用户
    su db2inst1
    #查看有没有我们的TESTDB数据库
    db2 list db directory
    
  • 4、创建一个用户并赋予权限

    其他的权限可网上看看,这里简单弄一个连接和增删改查权限

  • #创建用户组
    groupadd db2group
    #添加用户到该组
    useradd -m -g db2group -d /home/test test
    #修改test密码
    passwd test
    #连续输入两次密码
    #切换到db2inst1用户下给test赋予连接权限
    su db2inst1
    #连接数据库
    db2 connect to testdb
    #赋予连接权限
    db2 grant connect on database to user test
    #赋予增删改查权限
    db2 grant DATAACCESS on database to user test
    #关闭连接
    db2 connect reset
    #其他常用命令
    #创建数据库
    db2 create db TEST using codeset utf-8 territory CN
    #查看当前所有数据库
    db2 list db direcotry
    #查看库中的表名
    db2 list tables
    #更多命令省略
    
  • 5、db2导出导入操作命令

  • #db2导出命令(会出现很多文件,将这些文件都打包)
    db2move <your databases> export
    #db2导入命令 (将打包后的文件复制到你要导入的服务器上面,然后在该文件夹目录执行以下命令)
    db2move <your databases> import
    #如果出现权限问题,用root用户赋予文件夹的可写权限,因为导入命令会创建一个import.out文件
    
  • 至此,docker对于db2的安装就完成了,用docker容器的好处就是可以服务器之间的无缝迁移,将来像往其他服务器迁移数据库也就很方便了。

    补充知识:docker 安装db2并挂载至本地

    1.查找所有的db2镜像

    docker pull ibmcom/db2

    docker怎样安装mysql8(docker-compose安装db2数据库操作)

    2.拉取镜像

    我这里使用的最新版本的镜像,如果不需要最新的,可以依据自己情况去指定版本。方式:docker pull db2:11.5.4.0

    docker pull ibmcom/db2

    3.启动容器并挂载

    docker run -d -p 50001:50000 --name db2_50001 --privileged=true -e DB2INST1_PASSWORD=123456 -e DBNAME=testdb -e LICENSE=accept -v /data/tadopDataProject/db2/50001:/database ibmcom/db2

    参数说明:

    -d: 表示在后台启动容器;

    -p 50001:50000: 容器内部的 50000 端口映射主机的 50000 端口;

    --name db2_50001:将容器命名为 db2_50001

    --privileged=true:使得容器内的 root 拥有真正的 root 权限。

    -e DB2INST1_PASSWORD=123456:设置内置实例用户 db2inst1 的密码为 123456

    -e DBNAME=testdb:容器启动时自动创建一个名为 testdb 的数据库,如果不指定该参数则不创建数据库

    -e LICENSE=accept:接受协议

    -v /data/tadopDataProject/db2/50001:/database:挂载目录,其中/data/tadopDataProject/db2/50001 是宿主机的目录

    4.查看是否启动成功

    docker ps

    netstat -anp |grep 50001

    docker怎样安装mysql8(docker-compose安装db2数据库操作)

    5.进入容器执行db2命令

    docker exec -it db2_50001 bash

    执行如下命令切换到实例用户 db2inst1:

    注意:一定要写中间的那个横条(-)。

    su - db2inst1

    查看运行状态:

    db2pd -

    查看数据库和补丁版本:

    db2level

    查看已经创建的数据库:

    db2 list db directory

    docker怎样安装mysql8(docker-compose安装db2数据库操作)

    执行命令连接 testdb 数据库:

    db2 connect to testdb

    创建一个名为 TEST 的表:

    注意:db2 命令后面的sql语句需要用引号括起来,否中会报 -bash: syntax error near unexpected token `(' 错误。

    db2 "create table TEST(ID BIGINT NOT NULL GENERATED BY DEFAULT AS IDENTITY (START WITH 1,INCREMENT BY 1),USER_NAME VARCHAR(20),USER_AGES INT)"

    查看所以用户表:

    db2 list tables

    我们还可以执行如下命令再创建一个 SAMPLE 数据库(样例数据库):

    db2sampl

    再次执行 db2 list dbdirectory 命令查看是否创建成功

    最后执行 exit 即可退出容器,返回到宿主机。

    链接 testdb 数据库

    docker怎样安装mysql8(docker-compose安装db2数据库操作)

    以上这篇docker-compose安装db2数据库操作就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持开心学习网。

    您可能感兴趣