小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

docker 安裝pxc搭建mysql集群

 15所 2019-12-21

1,拉取鏡像

docker pull percona/percona-xtradb-cluster

2,為鏡像該名稱

docker tag pivotalcf/lts-pxc pxc

3,創(chuàng)建網(wǎng)段

docker network create --subnet=172.18.0.0/24 net1

-subnet 指定子網(wǎng)網(wǎng)段

4,創(chuàng)建docker卷

docker volume create v1

4,運(yùn)行鏡像

docker run -d -p 3307:3306 -v v1:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -e CLUSTER_NAME=PXC -e XTRABACKUP_PASSWORD=123456 --privileged --name=node1 --net=net1 --ip 172.18.0.2 pxc

參數(shù)解釋:
-d:表示后臺(tái)運(yùn)行
-v:映射Docker卷到容器的mysql數(shù)據(jù)目錄
MYSQL_ROOT_PASSWORD:表示創(chuàng)建的數(shù)據(jù)庫(kù)密碼
CLUSTER_NAME: 表示創(chuàng)建出的集群名字
XTRABACKUP_PASSWORD:表示集群通信密碼
–privileged:表示分配最高權(quán)限
–net:指定網(wǎng)段
–ip:指定IP

5, 安裝mysql集群

1) 創(chuàng)建docker卷

docker volume create --name v2docker volume create --name v3

2) 運(yùn)行容器

每個(gè)pxc節(jié)點(diǎn)運(yùn)行完畢后要等個(gè)一兩分鐘,保證上一個(gè)節(jié)點(diǎn)初始化完畢才能運(yùn)行下一個(gè)節(jié)點(diǎn)??梢杂每梢暬ぞ哌B接判斷是否初始化數(shù)據(jù)庫(kù)成功。

docker run -d -p 3308:3306 -v v2:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -e CLUSTER_NAME=PXC -e XTRABACKUP_PASSWORD=123456 -e CLUSTER_JOIN=node1 --privileged --name=node2 --net=net1 --ip 172.18.0.3 pxcdocker run -d -p 3309:3306 -v v3:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=abc123456 -e CLUSTER_NAME=PXC -e XTRABACKUP_PASSWORD=abc123456 -e CLUSTER_JOIN=node1 --privileged --name=node3 --net=net1 --ip 172.18.0.4 pxc

參數(shù)說明:

CLUSTER_JOIN : 表示加入node1節(jié)點(diǎn)

注意:第一個(gè)節(jié)點(diǎn)創(chuàng)建時(shí)間較長(zhǎng),必須等待兩分鐘左右再創(chuàng)建剩余節(jié)點(diǎn)。

創(chuàng)建好之后我們就可以使用客戶端連接數(shù)據(jù)庫(kù)

6,使用haproxy達(dá)到負(fù)載均衡

1)下載鏡像

docker pull haproxy

2) 在宿主機(jī)創(chuàng)建配置文件

touch /home/soft/haproxy/haproxy.cfg

3) 配置文件內(nèi)容

global	#工作目錄	chroot /usr/local/etc/haproxy	#日志文件,使用rsyslog服務(wù)中l(wèi)ocal5日志設(shè)備(/var/log/local5),等級(jí)info	log 127.0.0.1 local5 info	#守護(hù)進(jìn)程運(yùn)行	daemondefaults	log	global	mode	http	#日志格式	option	httplog	#日志中不記錄負(fù)載均衡的心跳檢測(cè)記錄	option	dontlognull    #連接超時(shí)(毫秒)	timeout connect 5000    #客戶端超時(shí)(毫秒)	timeout client  50000	#服務(wù)器超時(shí)(毫秒)    timeout server  50000#監(jiān)控界面	listen  admin_stats	#監(jiān)控界面的訪問的IP和端口	bind  0.0.0.0:8888	#訪問協(xié)議    mode        http	#URI相對(duì)地址    stats uri   /dbs	#統(tǒng)計(jì)報(bào)告格式    stats realm     Global\ statistics	#登陸帳戶信息    stats auth  admin:abc123456#數(shù)據(jù)庫(kù)負(fù)載均衡listen  proxy-mysql	#訪問的IP和端口	bind  0.0.0.0:3306      #網(wǎng)絡(luò)協(xié)議	mode  tcp	#負(fù)載均衡算法(輪詢算法)	#輪詢算法:roundrobin	#權(quán)重算法:static-rr	#最少連接算法:leastconn	#請(qǐng)求源IP算法:source     balance  roundrobin	#日志格式    option  tcplog	#在MySQL中創(chuàng)建一個(gè)沒有權(quán)限的haproxy用戶,密碼為空。Haproxy使用這個(gè)賬戶對(duì)MySQL數(shù)據(jù)庫(kù)心跳檢測(cè)    option  mysql-check user haproxy    server  MySQL_1 172.18.0.2:3306 check weight 1 maxconn 2000      server  MySQL_2 172.18.0.3:3306 check weight 1 maxconn 2000  	server  MySQL_3 172.18.0.4:3306 check weight 1 maxconn 2000 	#使用keepalive檢測(cè)死鏈    option  tcpka  

4) 運(yùn)行容器

docker run -it -d -p 4001:8888 -p 3306:3306 -v /home/soft/haproxy/haproxy.cfg:/usr/local/etc/haproxy/haproxy.cfg --name h1 --privileged --net=net1 docker.io/haproxy

第一個(gè)端口配置是監(jiān)控界面端口, 第二個(gè)為提供對(duì)外tcp訪問的端口,

-v 映射宿主機(jī)目錄到linux虛擬機(jī)目錄

5) 進(jìn)入容器運(yùn)行haproxy

1,查看容器iddocker ps2,進(jìn)入容器docker exec -it h1 bash3,運(yùn)行haproxy 并指定haproxy配置文件haproxy -f /usr/local/etc/haproxy/haproxy.cfg

6) 進(jìn)入數(shù)據(jù)庫(kù)創(chuàng)建一個(gè)用戶作為心跳檢測(cè)

create user 'haproxy'@'%' identified by '';

7) 進(jìn)入監(jiān)控界面可查

xiongchuanhong.cn:4001/dbs 用戶名:admin密碼:abc123456(配置文件中的)

7,負(fù)載均衡高可用,keepalived(此處待完善)

1) 進(jìn)入haproxy的容器,安裝keepalived(容器是ubuntu的)

docker exec -it h1 bashapt-get updateapt-get install keepalived

keepalived 配置文件路徑 /etc/keepalived/keepalived.conf

2) ,創(chuàng)建配置文件

vrrp_instance  VI_1 {    state  MASTER    interface  eth0    virtual_router_id  51    priority  100    advert_int  1    authentication {        auth_type  PASS        auth_pass  123456    }    virtual_ipaddress {        172.18.0.201    }}

3),啟動(dòng)keepalived,看宿主機(jī)能否ping通

service keepalived start

8,pxc節(jié)點(diǎn)掛掉之后的重啟

pxc集群只要保證了集群中節(jié)點(diǎn)個(gè)數(shù)大于一半就可以保證正常運(yùn)行

1) 如果集群還有可運(yùn)行的pxc節(jié)點(diǎn),可直接啟動(dòng)掛點(diǎn)節(jié)點(diǎn)

node2掛了

docker satrt node2

2)集群中沒有可運(yùn)行節(jié)點(diǎn)。

node1和node2都掛了

#1,停掉剩余的不能運(yùn)行節(jié)點(diǎn)docker stop node3#2,查看pxc的grastate.datcat /var/lib/docker/volumes/v1/_data/grastate.datcat /var/lib/docker/volumes/v2/_data/grastate.datcat /var/lib/docker/volumes/v3/_data/grastate.dat

grastate.dat文件內(nèi)容

version: 2.1
uuid: 132aaee5-7d0e-11e9-ac50-8666961e3c57
seqno: -1
safe_to_bootstrap: 0

safe_to_bootstrap 為1 代表此節(jié)點(diǎn)在start啟動(dòng)時(shí)作為主節(jié)點(diǎn),當(dāng)查看node1,node2,node3的該文件時(shí),發(fā)現(xiàn)都為0,這樣直接啟動(dòng)就會(huì)導(dǎo)致pxc找不到主節(jié)點(diǎn)的情況,導(dǎo)致啟動(dòng)失敗。

解決辦法,隨便修改一個(gè)節(jié)點(diǎn)的safe_to_bootstrap的值,變?yōu)?,先啟動(dòng)這個(gè)節(jié)點(diǎn),再啟動(dòng)另外兩個(gè)節(jié)點(diǎn)即可。

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多