docker下部署MySQL8基於GTID的主從複製

安裝docker
#yum install docker
添加docker鏡像倉庫
#vim /etc/docker/daemon.json
{
"registry-mirrors": ["https://docker.mirrors.ustc.edu.cn"]
}

拉取mysql鏡像
*# docker pull mysql

創建mysql容器
# docker run -dit --name lisamysql001 -p 33307:3307 -e MYSQLROOTPASSWORD=123456 mysql
# docker run -dit --name lisamysql002 -p 33308:3308 -e MYSQLROOTPASSWORD=123456 mysql

進入mysql容器
# docker exec -it lisamysql001 /bin/bash
# docker exec -it lisamysql002 /bin/bash

在mysql容器中登陸mysql,竟然還是mysql8.0版本呢。真香!

下面開始進入容器部署基於GTID的主從複製:
容器lisa_mysql001爲主庫,lisa_mysql002爲從庫
進入主庫(lisa_mysql001)給docker容器安裝vim(方便我修改my.cnf文件)
#docker exec -it lisa_mysql001 /bin/bash
#apt-get update
#apt-get install vim -y
安裝ifconfig的包,查看容器IP地址
#apt-get install net-tools -y
安裝ping命令
# apt-get install inetutils-ping -y

主庫(lisa_mysql001)的IP地址是:172.17.0.2

配置主庫的my.cnf,添加下面內容
#cat /etc/mysql/my.cnf
server-id=001
gtid-mode=on
enforce-gtid-consistency=on
log_bin = binlog

修改完主庫的配置文件後,退出mysql容器,重啓mysql
*# docker restart lisamysql001

爲從庫建立同步賬號
#mysql -uroot -p123456
mysql>create user 'repl'@'172.17.0.%' identified by '1225119';
mysql>grant replication slave on . to 'repl'@'172.17.0.%';
mysql>flush privileges;

查看主庫的uuid和狀態
mysql>show global variables like '%uuid%';
從庫配置成功後,測試主從複製能否同步。

從庫配置
# docker exec -it lisamysql002 /bin/bash
#apt-get update
#apt-get install vim -y
安裝ifconfig命令,查看容器IP地址
#apt-get install net-tools
-y
安裝ping命令
# apt-get install inetutils-ping -y
從庫(lisa_mysql001)的IP地址是:172.17.0.3
測試能否和主庫通信
# ping 172.17.0.2
配置從庫的my.cnf,添加下面內容
server-id=002
gtid-mode=on
enforce-gtid-consistency=on
log-slave-updates = on
修改完從庫的配置文件後,退出mysql容器,重啓mysql
*# docker restart lisamysql002

測試我們在主庫建的賬戶能不能從從庫登陸
*# mysql -urepl -h172.17.0.2 -p
配置從庫指定主庫
mysql> change master to master_host='172.17.0.2',master_user='repl',master_password='1225119';
mysql> start slave;
mysql> show slave status\G
主庫建了一個名字爲songlisha的庫後,從庫接受到了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章