mysql 5.7集群_Docker 部署 MySQL 5.7 主从集群

本文档介绍了如何在CentOS 7.6系统上使用Docker部署MySQL 5.7主从集群。首先进行Docker Swarm初始化和创建overlay网络,接着编辑master.cnf和slave.cnf配置文件,启动master和slave容器,设置复制用户并授权,最后验证从库状态和数据同步。
摘要由CSDN通过智能技术生成

系统

CentOS Linux release 7.6.1810 (Core)

ip

192.168.199.120

mysql

5.7

docker

Docker version 1.13.1

#0.初始化网络

docker swarm init

#1.创建 overlay 网络

docker network create --driver overlay common-network --attachable

#2.编辑两个配置文件 master.cnf 与 slave.cnf

#master.cnf 内容如下:

!includedir /etc/mysql/conf.d/

!includedir /etc/mysql/mysql.conf.d/

[mysqld]

log-bin=mysql-bin

server-id=1

gtid-mode=ON

enforce-gtid-consistency=ON

#slave.cnf内容如下:

!includedir /etc/mysql/conf.d/

!includedir /etc/mysql/mysql.conf.d/

[mysqld]

server-id=2

gtid-mode=ON

enforce-gtid-consistency=ON

#3.启动 :mysql-master 、mysql-slave

#下载镜像:

docker pull hub.c.163.com/library/mysql:5.7

docker tag hub.c.163.com/library/mysql:5.7 mysql:5.7

#启动mysql-master:

docker run -d --name mysql-master --network common-network -e MYSQL_ROOT_PASSWORD=Passw0rd -v `pwd`/master.cnf:/etc/mysql/my.cnf -p 3306:3306 -d mysql:5.7

#启动mysql-slave:

docker run -d --name mysql-slave --network common-network -e MYSQL_ROOT_PASSWORD=Passw0rd -v `pwd`/slave.cnf:/etc/mysql/my.cnf -p 3307:3306 -d mysql:5.7

#4.添加从库repl用于复制的用户

docker run -it --rm --network common-network mysql mysql -hmysql-master -uroot -pPassw0rd -e "CREATE USER 'repl'@'%' IDENTIFIED BY 'password' REQUIRE SSL; " -e "GRANT REPLICATION SLAVE ON *.* TO 'repl'@'%';"

#5.连接 master & slave

docker run -it --rm --network common-network mysql mysql -hmysql-slave -uroot -pPassw0rd -e "CHANGE MASTER TO MASTER_HOST='mysql-master', MASTER_PORT=3306, MASTER_USER='repl', MASTER_PASSWORD='password', MASTER_AUTO_POSITION=1, MASTER_SSL=1;" -e "START SLAVE;"

#6.验证 slave 状态,如下状态为正常:Slave_IO_Running: Yes Slave_SQL_Running: Yes

docker run -it --rm --network common-network mysql mysql -hmysql-slave -uroot -pPassw0rd -e "show slave status\G"

#7.验证数据同步

#在 master 创建数据库 tzzxz

docker run -it --rm --network common-network mysql mysql -hmysql-master -uroot -pPassw0rd -e "create database tzzxz default character set utf8mb4 collate utf8mb4_general_ci;"

#在 slave 查看数据库列表

docker run -it --rm --network common-network mysql mysql -hmysql-slave -uroot -pPassw0rd -e "show databases;"

slave信息如下,同步成功

mysql: [Warning] Using a password on the command line interface can be insecure.

+--------------------+

| Database |

+--------------------+

| tzzxz |

| information_schema |

| mysql |

| performance_schema |

| sys |

+--------------------+

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值