使用docker搭建mysql主从复制

# 创建网桥
docker network create mysql-bridge
# 创建master
docker run  -p 13306:3306 -p 13307:33060 \
-e MYSQL_ROOT_PASSWORD=123456 --name mysql-master \
-v /root/docker/mysql-master/conf:/etc/mysql \
-v /root/docker/mysql-master/logs:/var/log/mysql \
-v /root/docker/mysql-master/data:/var/lib/mysql \
-d mysql:5.7

# 创建slave
docker run  -p 23306:3306 -p 23307:33060 \
-e MYSQL_ROOT_PASSWORD=123456 --name mysql-slave1 \
-v /root/docker/mysql-slave1/conf:/etc/mysql \
-v /root/docker/mysql-slave1/logs:/var/log/mysql \
-v /root/docker/mysql-slave1/data:/var/lib/mysql \
-d mysql:5.7

在master主机和slave主机中分别创建备份用户

CREATE USER 'repl'@'172.17.0.*';
ALTER USER 'repl'@'172.17.0.*'
GRANT Replication client,Replication slave ON *.* TO 'repl'@'172.17.0.*' IDENTIFIED BY 'password';

主机添加my.cnf配置

#master my.cnf配置
[mysqld]
log_bin = mysql-bin
server_id = 10
#查看 主节点状态
SHOW MASTER STATUS;

#slave my.cnf配置
[mysqld]
log_bin = mysql-bin
server_id = 2
relay_log = /var/lib/mysql/mysql-relay-bin
log_slave_updates = 1
read_only = 1

#配置复制的级别命令
CHANGE MASTER TO MASTER_HOST='172.17.0.3',
MASTER_USER='repl',
MASTER_PASSWORD='password',
MASTER_LOG_FILE='mysql-bin.000001',
MASTER_LOG_POS=0;

#查看备机状态
SHOW SLAVE STATUS;

START SLAVE;
STOP SLAVE;

校验主备库表的数据是否一致

CHECKSUM TABLE tbl_name [, tbl_name] ... [QUICK | EXTENDED]

CHECKSUM TABLE报告 表内容的校验和。您可以使用此语句来验证备份,回滚或旨在将数据恢复到已知状态的其他操作前后的内容是否相同。

该语句需要SELECT该表的 特权。

视图不支持该语句。如果CHECKSUM TABLE针对视图运行 ,则该Checksum值始终为 NULL,并返回警告。

对于不存在的表,CHECKSUM TABLE返回NULL并生成警告。

在校验和运算表被锁定了读锁InnoDB和 MyISAM。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值