docker搭建mysql的集群(双主双从)

docker搭建mysql的集群(双主双从)

首先在docker上拉取mysql的镜像,以及运行起来四个mysql,不会的话大家可以去看我之前搭建一主一从的文章,在这里细节就不多演示了,直接从4台配置开始:

在这里插入图片描述

我这里直接开过了:master,master01,slave,slave01四台

进入master容器内部:

docker exec -it mysql-master /bin/bash		 //mysql-master为容器名称

如果没有安装vim的话需要安装下vim编辑器,安装可跳过这一步:
docker内部安装vim

apt-get update

apt-get install vim

编辑配置文件

root@6867ee816ce1:/# vim etc/mysql/conf.d/docker.cnf 

配置解释:

#主服务器唯一ID  四台机器不要重复
server-id=1
#启用二进制日志
log-bin=mysql-bin
# 设置不要复制的数据库(可设置多个)
binlog-ignore-db=mysql
binlog-ignore-db=information_schema
#设置需要复制的数据库
binlog-do-db=需要复制的主数据库名字
#设置logbin格式
binlog_format=STATEMENT
# 在作为从数据库的时候,有写入操作也要更新二进制日志文件
log-slave-updates 
#表示自增长字段每次递增的量,其默认值是1,取值范围是1 .. 65535
auto-increment-increment=2 
# 表示自增长字段从哪个数开始,指字段一次递增多少,他的取值范围是1 .. 65535
auto-increment-offset=1 

下面是我配置的master:
在这里插入图片描述
接下来配置slave主机:
配置解释:

#从服务器唯一ID
server-id=101
#启用中继日志
relay-log=mysql-relay-bin

下面是我配置的
在这里插入图片描述

其他两个主从都是一样的,直接给出我的配置:
master01主机:

在这里插入图片描述
slave01从机:
在这里插入图片描述

主机创建用户并授权:

mysql> CREATE USER 'slave'@'%' IDENTIFIED BY '123456';
Query OK, 0 rows affected (0.36 sec)

mysql> GRANT REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'slave'@'%';
Query OK, 0 rows affected (0.00 sec)

至此,Master配置完成。

链接Master(主)和Slave(从)

Master进入mysql,执行

show master status;

在这里插入图片描述
然后在master的从节点slave中配置:
change master to master_host='172.17.0.2', master_user='slave', master_password='123456', master_port=3306, master_log_file='mysql-bin.000007', master_log_pos= 154, master_connect_retry=30;

将master_host改为master的ip, master_log_file改为master的日志File ,master_log_pos改为上图对应的position

命令说明:

master_host :Master的地址,指的是容器的独立ip,可以通过

docker inspect --format='{{.NetworkSettings.IPAddress}}' 容器名称|容器id

查询容器的ip命令:
在这里插入图片描述

改写配置语句:
在这里插入图片描述

所以我在slave配置的命令就是

change master to master_host='172.17.0.2', master_user='slave', master_password='123456', master_port=3306, master_log_file='master-bin.000001', master_log_pos= 371, master_connect_retry=30;

在这里插入图片描述
同理在slave01中配置master01:
在这里插入图片描述
这样来说两个主从都配置好了
使用show slave status \G;查看:
在这里插入图片描述

链接两个主机

两个主机互相复制:

在master节点配置master01:

在这里插入图片描述
开启:

mysql> start slave;
Query OK, 0 rows affected (0.01 sec)

在master01节点配置master:
在这里插入图片描述
开启:

mysql> start slave;
Query OK, 0 rows affected (0.01 sec)

这样就成功了!

测试
在这里插入图片描述
创建一个数据库,四个数据库都已同步:
在这里插入图片描述
成功!

  • 2
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

杵意

谢谢金主打赏呀!!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值