docker-compose安裝db2數(shù)據(jù)庫(kù)操作
db2數(shù)據(jù)庫(kù)在宿主機(jī)直接安裝比較麻煩,而且涉及用戶和權(quán)限也不方便,所以采用docker安裝db2數(shù)據(jù)庫(kù),這樣做的好處是便于數(shù)據(jù)庫(kù)的管理和網(wǎng)絡(luò)隔離,網(wǎng)上一般都是docker直接run的這種不便于后期修改,我們依然采用docker-compose文件來(lái)安裝db2數(shù)據(jù)庫(kù)。
1、編寫(xiě)docker-compose文件,會(huì)自動(dòng)下載數(shù)據(jù)庫(kù)鏡像
此文件自己創(chuàng)建一個(gè)文件夾放就可以了
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初始化完成,可能需要幾分鐘
#執(zhí)行docker-compose開(kāi)始安裝 docker-compose up -d #查看安裝日志 docker-compose logs #差不多到創(chuàng)建完TESTDB的時(shí)候就安裝好了
3、進(jìn)入db2數(shù)據(jù)庫(kù)容器創(chuàng)建自己的數(shù)據(jù)庫(kù)
#進(jìn)入容器 docker exec -it db211.5 bash #切換到db2inst1用戶 su db2inst1 #查看有沒(méi)有我們的TESTDB數(shù)據(jù)庫(kù) db2 list db directory
4、創(chuàng)建一個(gè)用戶并賦予權(quán)限
其他的權(quán)限可網(wǎng)上看看,這里簡(jiǎn)單弄一個(gè)連接和增刪改查權(quán)限
#創(chuàng)建用戶組 groupadd db2group #添加用戶到該組 useradd -m -g db2group -d /home/test test #修改test密碼 passwd test #連續(xù)輸入兩次密碼 #切換到db2inst1用戶下給test賦予連接權(quán)限 su db2inst1 #連接數(shù)據(jù)庫(kù) db2 connect to testdb #賦予連接權(quán)限 db2 grant connect on database to user test #賦予增刪改查權(quán)限 db2 grant DATAACCESS on database to user test #關(guān)閉連接 db2 connect reset #其他常用命令 #創(chuàng)建數(shù)據(jù)庫(kù) db2 create db TEST using codeset utf-8 territory CN #查看當(dāng)前所有數(shù)據(jù)庫(kù) db2 list db direcotry #查看庫(kù)中的表名 db2 list tables #更多命令省略
5、db2導(dǎo)出導(dǎo)入操作命令
#db2導(dǎo)出命令(會(huì)出現(xiàn)很多文件,將這些文件都打包) db2move <your databases> export #db2導(dǎo)入命令 (將打包后的文件復(fù)制到你要導(dǎo)入的服務(wù)器上面,然后在該文件夾目錄執(zhí)行以下命令) db2move <your databases> import #如果出現(xiàn)權(quán)限問(wèn)題,用root用戶賦予文件夾的可寫(xiě)權(quán)限,因?yàn)閷?dǎo)入命令會(huì)創(chuàng)建一個(gè)import.out文件
至此,docker對(duì)于db2的安裝就完成了,用docker容器的好處就是可以服務(wù)器之間的無(wú)縫遷移,將來(lái)像往其他服務(wù)器遷移數(shù)據(jù)庫(kù)也就很方便了。
補(bǔ)充知識(shí):docker 安裝db2并掛載至本地
1.查找所有的db2鏡像
docker pull ibmcom/db2
2.拉取鏡像
我這里使用的最新版本的鏡像,如果不需要最新的,可以依據(jù)自己情況去指定版本。方式:docker pull db2:11.5.4.0
docker pull ibmcom/db2
3.啟動(dòng)容器并掛載
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
參數(shù)說(shuō)明:
-d: 表示在后臺(tái)啟動(dòng)容器;
-p 50001:50000: 容器內(nèi)部的 50000 端口映射主機(jī)的 50000 端口;
--name db2_50001:將容器命名為 db2_50001
--privileged=true:使得容器內(nèi)的 root 擁有真正的 root 權(quán)限。
-e DB2INST1_PASSWORD=123456:設(shè)置內(nèi)置實(shí)例用戶 db2inst1 的密碼為 123456
-e DBNAME=testdb:容器啟動(dòng)時(shí)自動(dòng)創(chuàng)建一個(gè)名為 testdb 的數(shù)據(jù)庫(kù),如果不指定該參數(shù)則不創(chuàng)建數(shù)據(jù)庫(kù)
-e LICENSE=accept:接受協(xié)議
-v /data/tadopDataProject/db2/50001:/database:掛載目錄,其中/data/tadopDataProject/db2/50001 是宿主機(jī)的目錄
4.查看是否啟動(dòng)成功
docker ps
netstat -anp |grep 50001
5.進(jìn)入容器執(zhí)行db2命令
docker exec -it db2_50001 bash
執(zhí)行如下命令切換到實(shí)例用戶 db2inst1:
注意:一定要寫(xiě)中間的那個(gè)橫條(-)。
su - db2inst1
查看運(yùn)行狀態(tài):
db2pd -
查看數(shù)據(jù)庫(kù)和補(bǔ)丁版本:
db2level
查看已經(jīng)創(chuàng)建的數(shù)據(jù)庫(kù):
db2 list db directory
執(zhí)行命令連接 testdb 數(shù)據(jù)庫(kù):
db2 connect to testdb
創(chuàng)建一個(gè)名為 TEST 的表:
注意:db2 命令后面的sql語(yǔ)句需要用引號(hào)括起來(lái),否中會(huì)報(bào) -bash: syntax error near unexpected token `(' 錯(cuò)誤。
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
我們還可以執(zhí)行如下命令再創(chuàng)建一個(gè) SAMPLE 數(shù)據(jù)庫(kù)(樣例數(shù)據(jù)庫(kù)):
db2sampl
再次執(zhí)行 db2 list dbdirectory 命令查看是否創(chuàng)建成功
最后執(zhí)行 exit 即可退出容器,返回到宿主機(jī)。
鏈接 testdb 數(shù)據(jù)庫(kù)
以上這篇docker-compose安裝db2數(shù)據(jù)庫(kù)操作就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持本站。
版權(quán)聲明:本站文章來(lái)源標(biāo)注為YINGSOO的內(nèi)容版權(quán)均為本站所有,歡迎引用、轉(zhuǎn)載,請(qǐng)保持原文完整并注明來(lái)源及原文鏈接。禁止復(fù)制或仿造本網(wǎng)站,禁止在非www.sddonglingsh.com所屬的服務(wù)器上建立鏡像,否則將依法追究法律責(zé)任。本站部分內(nèi)容來(lái)源于網(wǎng)友推薦、互聯(lián)網(wǎng)收集整理而來(lái),僅供學(xué)習(xí)參考,不代表本站立場(chǎng),如有內(nèi)容涉嫌侵權(quán),請(qǐng)聯(lián)系alex-e#qq.com處理。