docker安裝mysql集群

1. 拉取mysql鏡像

docker pull mysql:5.7

2. 創(chuàng)建掛載目錄

mkdir -p /home/mysql/mysql01/data

mkdir -p /home/mysql/mysql01/conf.d

將附件中的 mysqld.cnf 分別拷貝至conf.d中,如果是單主機docker虛擬仨個容器,需改端口port和server-id

mkdir -p /home/mysql/data

mkdir -p /home/mysql/conf.d

3. 使用鏡像創(chuàng)建容器東側(cè)可讓

docker run --name mysql01 --net=host --privileged=true -v /home/mysql/mysql01/data:/var/lib/mysql -v /home/mysql/mysql01/conf.d:/etc/mysql/conf.d -e MYSQL_ROOT_PASSWORD=root111 -d mysql:5.7

docker run --name mysql02 --net=host --privileged=true -v /home/mysql/mysql02/data:/var/lib/mysql -v /home/mysql/mysql02/conf.d:/etc/mysql/conf.d -e MYSQL_ROOT_PASSWORD=root222 -d mysql:5.7

docker run --name mysql03 --net=host --privileged=true -v /home/mysql/mysql03/data:/var/lib/mysql -v /home/mysql/mysql03/conf.d:/etc/mysql/conf.d -e MYSQL_ROOT_PASSWORD=root333 -d mysql:5.7

# --net=host 單主機docker容器間聯(lián)系需開放端口

-p 3306:3306 多主機直接開放防火墻端口

docker run --name mysql252 --net=host --privileged=true -v /home/mysql/data:/var/lib/mysql -v /home/mysql/conf.d:/etc/mysql/conf.d -e MYSQL_ROOT_PASSWORD=root123 -d mysql:5.7

4. 創(chuàng)建 mysql-master(mysql01)

###進入容器 docker exec -i -t mysql-master /bin/bash

4.1 進入mysql

mysql -p3306 -uroot -p

4.2 創(chuàng)建一個具有slave復制權(quán)限的用戶:atlp

GRANT REPLICATION SLAVE ON *.* to 'atlp'@'%' identified by 'atlp123';

4.3 刷新權(quán)限

flush privileges;

4.4 顯示 master 狀態(tài),如下圖:

show master status;

mysql-bin.000007 15734

mysql-bin.000008 1549476

5. 創(chuàng)建 mysql-slave(mysql02)

###進入容器 docker exec -i -t mysql-slave137 /bin/bash

5.1 進入mysql

mysql -p3306 -uroot -p

5.2 重置slave

stop slave;

reset slave;

change master to master_host='IP地址',master_user='atlp',master_password='atlp123',master_log_file='mysql-bin.000007',master_log_pos=15734;

#master_host:mysql-master 的 ip 地址;

#master_user:在 4.2 中設(shè)置的擁有 slave 復制權(quán)限的用戶:atlp;

#master_password:用戶密碼;

#master_log_file:在 4.4 圖例中的第一列“File”的值;

#master_log_pos: 在 4.4 圖例中的第二列“Position”的值;

5.3 啟動slave

start slave;

5.4 查看slave狀態(tài)

show slave status \G

# --Slave_IO_Running和Slave_SQL_Running 即成功

6. 創(chuàng)建mysql-slave(mysql03)

同上

###查看mysql服務(wù)器id

show variables like '%server_id%';

###查看docker日志

docker logs -f -t --since="2019-01-17" --tail=100 mysql02

7. 防火墻設(shè)置

#添加(--permanent永久生效,沒有此參數(shù)重啟后失效)

firewall-cmd --zone=public --add-port=3306/tcp --permanent

firewall-cmd --zone=public --add-port=3307/tcp --permanent

firewall-cmd --zone=public --add-port=3308/tcp --permanent

#重新載入

firewall-cmd --reload

#查看

firewall-cmd --list-ports

#刪除(如果添加錯誤可以刪除)

firewall-cmd --zone= public --remove-port=80/tcp --permanent

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容