欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 汽车 > 时评 > Docker高级篇之Docker搭建mysql主从复制架构

Docker高级篇之Docker搭建mysql主从复制架构

2024/10/25 13:24:08 来源:https://blog.csdn.net/qq_43456605/article/details/139443684  浏览:    关键词:Docker高级篇之Docker搭建mysql主从复制架构

文章目录

    • 1. 安装mysql主从复制
    • 2. 主从复制测试

1. 安装mysql主从复制

  • 首先创建主节点
docker run -d -p 3308:3306 \
--privileged=true \
-v /Users/jackchai/Desktop/lottory_docker/learndocker/mymysql/master/log:/var/log/mysql \
-v /Users/jackchai/Desktop/lottory_docker/learndocker/mymysql/master/data:/var/lib/mysql \
-v /Users/jackchai/Desktop/lottory_docker/learndocker/mymysql/master/conf:/etc/mysql \
-e MYSQL_ROOT_PASSWORD=123456 \
--name mysql-master \
mysql

在这里插入图片描述

然后给主节点创建一个my.cnf配置文件:

[mysqld]
server_id=101
binlog-ignore-db=mysql
log-bin=mall-mysql-bin
binlog_cache_size=1M
binlog_format=mixed
slave_skip_errors=1062

然后我们需要重启master实例

然后我们进入mysql-master容器实例:

docker exec -it mysql-master /bin/bash

在这里插入图片描述

然后我们在master上创建一个数据同步的用户(让数据同步交给可信任的用户处理):

CREATE USER 'slave'@'%' IDENTIFIED BY '123456';
GRANT REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'slave'@'%';

在这里插入图片描述
我们可以查看主节点状态:

show master status;

在这里插入图片描述

  • 创建从节点
docker run -d -p 3309:3306 \
--privileged=true \
-v /Users/jackchai/Desktop/lottory_docker/learndocker/mymysql/slave/log:/var/log/mysql \
-v /Users/jackchai/Desktop/lottory_docker/learndocker/mymysql/slave/data:/var/lib/mysql \
-v /Users/jackchai/Desktop/lottory_docker/learndocker/mymysql/slave/conf:/etc/mysql \
-e MYSQL_ROOT_PASSWORD=123456 \
--name mysql-slave \
mysql

在这里插入图片描述

同样需要创建配置文件my.cnf

[mysqld]
server_id=102
binlog-ignore-db=mysql
log-bin=mall-mysql-bin
binlog_cache_size=1M
binlog_format=mixed
slave_skip_errors=1062
relay_log=mall-mysql-relay-bin
log_slave_updates=1
read_only=1

同样需要重启mysql容器

然后我们在主节点上查看mysql主从架构的状态:

show master status;

然后我们进入从机容器中:
在这里插入图片描述

然后在从机中配置主从复制:

CHANGE MASTER TO
master_host='192.168.31.41',
master_port=3308,
master_user='slave',
master_password='123456',
master_log_file='mall-mysql-bin.000001',
master_log_pos=617;

master_host:主数据库ip地址
master_port:主数据库端口
master_user:主数据库创建的用于同步数据库的用户账号
master_password:用户账号对应的密码
master_log_file:指定从数据库要复制数据的日志文件,通过查看主数据库的状态,获取file参数
master_log_pos:指定从数据库哪个位置开始复制数据
master_connect_retry:连接失败重试的时间间隔,单位为秒

然后我们在从数据库汇总查看主从同步状态:

show slave status\G

在这里插入图片描述
在从数据库中开启主从同步:

start slave

2. 主从复制测试

主机创建1个库db01,库中分别创建1一个表,然后表中插入数据。
在这里插入图片描述

从机也可以看到创建的库:

在这里插入图片描述
然后从机查看数据:
在这里插入图片描述

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com