docker 安裝部署tidb 數據庫 (linux單機集群)並修改root登陸密碼


1 、拉取 TiDB 的 Docker 鏡像,用的是v5.0.5

部署 TiDB 集群主要包括 3 個服務組件: TiDB,TiKV,PD

docker pull pingcap/tidb:v5.0.5

docker pull pingcap/tikv:v5.0.5

docker pull pingcap/pd:v5.0.5

2.創建docker私有網絡:實現多個容器之間使用橋接通訊:

2.1創建一個totonet名字的私有網絡,

docker network create totonet

2.2查看

docker network ls

所有的啟動的容器都是用totonet網絡,可以將所有的容器都橋接到該網絡上,並且該網絡自帶dns解析,可以做到使用容器的名稱直接訪問容器

3.啟動容器

服務啟動順序:
pd—>tikv—>tidb

服務集群有3種部署方式,可以按照性能需求部署

方法一:最簡單的只有3個基礎節點,(pd,tikv,tidb幾個組件只能按照需求奇數增加 1,3,5等)

#PD1-----------------------------------------------------------------------------------------------
docker run -d --name pd1 --network totonet -v /etc/localtime:/etc/localtime:ro -v /home/data/tidb/pd1:/data docker.io/pingcap/pd:v5.0.5 --name="pd1" --data-dir="/data/pd1" --client-urls="http://0.0.0.0:2379" --peer-urls="http://0.0.0.0:2380" --advertise-client-urls=http://pd1:2379 --advertise-peer-urls="http://pd1:2380" --initial-cluster="pd1=http://pd1:2380"
#tikv1---------------------------------------------------------------------------------------------
docker run -d --name tikv1 --network totonet --ulimit nofile=1000000:1000000  -v /etc/localtime:/etc/localtime:ro  -v /home/data/tidb/tikv1:/data           docker.io/pingcap/tikv:v5.0.5 --advertise-addr="tikv1:20160" --addr="0.0.0.0:20160" --data-dir="/data/tikv1" --pd="pd1:2379"
#啟動TiDB(1個節點)---------------------------------------------------------------------
docker run -d --name tidb --network totonet --privileged=true -p 4000:4000 -p 10080:10080 docker.io/pingcap/tidb:v5.0.5 --store=tikv --path="pd1:2379"

參數說明:

上面的參數都是我自己部署成功的,所以是可用的,請謹慎增加或減少

--network totonet   #totonet網絡 ,所有容器通過網絡通信;

--name pd1 和 --name="pd1" 是不一樣的,必須都有;

--name="pd1"    #當前 PD 的名字如果你需要啟動多個 PD,一定要給 PD 使用不同的名字
--data-dir="/data/pd1"    #PD 存儲數據路徑。
--client-urls="http://pd1:2379"   # 處理客戶端請求監聽 URL 列表,如果是運行在 docker 則需要指定為 http://0.0.0.0:2379,或者該容器的地址
--peer-urls="http://pd1:2380"  # 處理其他 PD 節點請求監聽 URL 列表。果部署一個集群,--peer-urls 必須指定當前主機的 IP 地址,如果是運行在 docker 則需要指定為 http://0.0.0.0:2380
--initial-cluster="pd1=http://pd1:2380"
#初始化 PD 集群配置。如果你需要啟動三台 PD,那么 initial-cluster 可能就是 pd1=http://192.168.100.113:2380, pd2=http://192.168.100.114:2380, pd3=192.168.100.115:2380。

參考https://blog.csdn.net/shang_feng_wei/article/details/95250133

方法二:多節點的只有7個基礎節點,(3個pd,3個tikv,1個tidb,備注:tikv目錄掛載數據非常大,大約5.3G,如果要開3個tikv至少要准備17G的磁盤空間

#啟動PD1
docker run -d --name pd1 --network totonet -v /home/tidb:/data docker.io/pingcap/pd:v5.0.5 --name="pd1" --data-dir="/data/pd1" --client-urls="http://0.0.0.0:2379" --peer-urls="http://0.0.0.0:2380" --advertise-client-urls=http://pd1:2379 --advertise-peer-urls="http://pd1:2380" --initial-cluster="pd1=http://pd1:2380,pd2=http://pd2:2380,pd3=http://pd3:2380"
#啟動PD2
docker run -d --name pd2 --network totonet -v /home/tidb:/data docker.io/pingcap/pd:v5.0.5 --name="pd2" --data-dir="/data/pd2" --client-urls="http://0.0.0.0:2379" --peer-urls="http://0.0.0.0:2380" --advertise-client-urls=http://pd2:2379 --advertise-peer-urls="http://pd2:2380" --initial-cluster="pd1=http://pd1:2380,pd2=http://pd2:2380,pd3=http://pd3:2380"
#啟動PD3
docker run -d --name pd3 --network totonet -v /home/tidb:/data docker.io/pingcap/pd:v5.0.5 --name="pd3" --data-dir="/data/pd3" --client-urls="http://0.0.0.0:2379" --peer-urls="http://0.0.0.0:2380" --advertise-client-urls=http://pd3:2379 --advertise-peer-urls="http://pd3:2380" --initial-cluster="pd1=http://pd1:2380,pd2=http://pd2:2380,pd3=http://pd3:2380"

#啟動TiKV(3個節點)
#tikv1
docker run -d --name tikv1 --network totonet -v /home/tidb:/data docker.io/pingcap/tikv:v5.0.5 --advertise-addr="tikv1:20160" --addr="0.0.0.0:20160" --data-dir="/data/tikv1" --pd="pd1:2379,pd2:2379,pd3:2379"
#tikv2
docker run -d --name tikv2 --network totonet -v /home/tidb:/data docker.io/pingcap/tikv:v5.0.5 --advertise-addr="tikv2:20160" --addr="0.0.0.0:20160" --data-dir="/data/tikv2" --pd="pd1:2379,pd2:2379,pd3:2379"
#tikv3
docker run -d --name tikv3 --network totonet -v /home/tidb:/data docker.io/pingcap/tikv:v5.0.5 --advertise-addr="tikv3:20160" --addr="0.0.0.0:20160" --data-dir="/data/tikv3" --pd="pd1:2379,pd2:2379,pd3:2379"
#啟動TiDB(1個節點)
docker run -d --name tidb --network totonet --privileged=true -p 4000:4000 -p 10080:10080 docker.io/pingcap/tidb:v5.0.5 --store=tikv --path="pd1:2379,pd2:2379,pd3:2379"

 參數說明:

path="pd1:2379,pd2:2379,pd3:2379"   ##PD 地址列表。TiKV 必須使用這個值連接 PD,才能正常工作

參考https://blog.csdn.net/shang_feng_wei/article/details/95250133

方法三:多服務器多節點集群部署

參考官網:https://docs.pingcap.com/zh/tidb/v3.0/test-deployment-using-docker/

***以上容器啟動 docker ps -a 隨時看一下,看是否真的啟動成功,不成功 docker logs 容器 看一下日志

4.登陸tidb,用跟mysql一樣的方式或編譯器登陸,可以把tidb看作mysql,賬號:root,端口4000,初始無密碼

5.創建用戶,並修改root登陸密碼

#創建用戶和修改密碼
CREATE user 'test_rw'@'%' IDENTIFIED by 'test_rw';

#賦予權限
grant all PRIVILEGES on test.* TO 'test_rw'@'%';
FLUSH PRIVILEGES;

#修改密碼root密碼,必須在mysql庫運行才不報錯,test庫運行不了,還有我運行完了root用戶的密碼沒有立即生效,我后面重啟一下容器才生效的,不知道為什么

UPDATE user set authentication_string = password('123456') where User ='root';

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM