CentOS Docker搭建Mysql5.7集群

MySQL Replication

        MySQL提供了Replication功能,可以实现将一个数据库的数据同步到多台其他数据库。前者通常称之为主库(master),后者则被称从库(slave)。MySQL复制过程采用异步方式,但延时非常小,秒级同步。

同步复制数据基本原理

1.在主库上发生的数据变化记录到二进制日志Binlog
2.从库的IO线程将主库的Binlog复制到自己的中继日志Relay log
3.从库的SQL线程通过读取、重放中继日志实现数据复制

mysql

        MySQL的复制有三种模式:Statement Level、Row Level、Mixed Level。复制级别的不同,会导致Master端二进制日志文件的生成形式的不同。

环境

环境 版本
Docker 26.1.4
CentOS 7
Mysql 5.7

步骤

一、创建容器

docker run -p 3307:3306 --name mysql-master \
-v /mydata/mysql-cluster/mysql-master1/log:/var/log/mysql \
-v /mydata/mysql-cluster/mysql-master1/data:/var/lib/mysql \
-v /mydata/mysql-cluster/mysql-master1/conf:/etc/mysql \
-v /mydata/mysql-cluster/mysql-master1/mysql-files:/var/lib/mysql-files \
-e MYSQL_ROOT_PASSWORD=root \
-d mysql:5.7

docker run -p 3317:3306 --name mysql-master2 \
-v /mydata/mysql-cluster/mysql-master2/log:/var/log/mysql \
-v /mydata/mysql-cluster/mysql-master2/data:/var/lib/mysql \
-v /mydata/mysql-cluster/mysql-master2/conf:/etc/mysql \
-v /mydata/mysql-cluster/mysql-master2/mysql-files:/var/lib/mysql-files \
-e MYSQL_ROOT_PASSWORD=root \
-d mysql:5.7

docker run -p 3327:3306 --name mysql-slave1 \
-v /mydata/mysql-cluster/mysql-slave1/log:/var/log/mysql \
-v /mydata/mysql-cluster/mysql-slave1/data:/var/lib/mysql \
-v /mydata/mysql-cluster/mysql-slave1/conf:/etc/mysql \
-v /mydata/mysql-cluster/mysql-slave1/mysql-files:/var/lib/mysql-files \
-e MYSQL_ROOT_PASSWORD=root \
-d mysql:5.7

docker run -p 3337:3306 --name mysql-slave2 \
-v /mydata/mysql-cluster/mysql-slave2/log:/var/log/mysql \
-v /mydata/mysql-cluster/mysql-slave2/data:/var/lib/mysql \
-v /mydata/mysql-cluster/mysql-slave2/conf:/etc/mysql \
-v /mydata/mysql-cluster/mysql-slave2/mysql-files:/var/lib/mysql-files \
-e MYSQL_ROOT_PASSWORD=root \
-d mysql:5.7

二、创建配置文件

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值