1. 程式人生 > 資料庫 >docker-compose安裝db2資料庫操作

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-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-compose安裝db2資料庫操作

5.進入容器執行db2命令

docker exec -it db2_50001 bash

執行如下命令切換到例項使用者 db2inst1:

注意:一定要寫中間的那個橫條(-)。

su - db2inst1

檢視執行狀態:

db2pd -

檢視資料庫和補丁版本:

db2level

檢視已經建立的資料庫:

db2 list db directory

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-compose安裝db2資料庫操作

以上這篇docker-compose安裝db2資料庫操作就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支援我們。