【分布式微服务云原生】windows+docker+mysql5.7.44一主一从主从复制

目录

        • 1. 主库设置
        • 2. 从库设置
        • 3. 验证主从复制
        • 内容汇总表格

摘要:
在Windows系统上通过Docker部署MySQL主从复制,以下是详细的步骤和命令,帮助你设置一主一从的MySQL复制环境。


1. 主库设置

步骤1:运行MySQL主库容器

docker run --name mysql-master 
-v "D:\mysql\mysql-master\log:/var/log/mysql" 
-v "D:\mysql\mysql-master\data:/var/lib/mysql" 
-v "D:\mysql\mysql-master\conf\my.cnf:/etc/mysql/conf.d/my.cnf" 
-e MYSQL_ROOT_PASSWORD=password@312 
-p 3306:3306 -d mysql:5.7.44

在这里插入图片描述

注意:确保配置文件D:\mysql\mysql-master\conf\my.cnf的读写权限设置为只读,以避免启动容器时的权限错误。

步骤2:进入MySQL主库容器

docker exec -it mysql-master mysql -uroot -p

设置MySQL用户和权限,以便进行复制。
在这里插入图片描述

步骤3:配置MySQL主库

CREATE USER 'root'@'%' IDENTIFIED BY 'password@312';
ALTER USER 'root'@'%' IDENTIFIED BY 'password@312';
GRANT REPLICATION SLAVE ON *.* TO 'root'@'%';
FLUSH PRIVILEGES;
SHOW MASTER STATUS;

这些命令创建了一个新的用户,并授予了复制权限。
在这里插入图片描述

流程图:主库设置

开始
运行主库容器
设置容器卷和端口映射
开始
进入MySQL容器
配置MySQL用户和权限
执行命令
CREATE USER
执行命令
GRANT REPLICATION SLAVE
执行命令
SHOW MASTER STATUS

步骤4:查看容器IP地址

docker inspect 
-f '{{range.NetworkSettings.Networks}}{{.IPAddress}}{{end}}' mysql-master

记录主库容器的IP地址,以便从库使用。
在这里插入图片描述

2. 从库设置

步骤1:运行MySQL从库容器

docker run 
--name mysql-slave 
-v "D:\mysql\mysql-slave\log:/var/log/mysql" 
-v "D:\mysql\mysql-slave\data:/var/lib/mysql" 
-v "D:\mysql\mysql-slave\conf\my.cnf:/etc/mysql/conf.d/my.cnf" 
-e MYSQL_ROOT_PASSWORD=password@312 
-p 3307:3306 -d mysql:5.7.44

与主库设置类似,但端口映射为3307。
**注意:**确保配置文件D:\mysql\mysql-slave\conf\my.cnf的读写权限设置为只读。

步骤2:进入MySQL从库容器

docker exec -it mysql-slave mysql -uroot -p

与主库设置类似。配置从库以连接到主库。

步骤3:配置MySQL从库

CHANGE MASTER TO 
MASTER_HOST='172.17.0.2', 
MASTER_USER='root', 
MASTER_PASSWORD='password@312', 
MASTER_LOG_FILE='mysql-bin.000015', 
MASTER_LOG_POS=154;
START SLAVE;
SHOW SLAVE STATUS;

在这里插入图片描述

这些命令配置从库以连接到主库,并启动复制。

流程图:从库设置

开始
运行从库容器
设置容器卷和端口映射
开始
进入MySQL容器
配置MySQL从库
执行命令
CHANGE MASTER TO
执行命令
START SLAVE
执行命令
SHOW SLAVE STATUS
3. 验证主从复制

步骤1:在主库创建测试表

CREATE TABLE `test` (`id` INT NOT NULL AUTO_INCREMENT,`data` TEXT NOT NULL,`created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

在主库创建一个测试表。

步骤2:在从库检查数据同步

SELECT * FROM test;

在从库查询测试表,验证数据是否已同步。

流程图:验证主从复制

开始
在主库创建测试表
在从库检查数据同步
内容汇总表格
章节命令说明
主库设置docker run --name mysql-master ...运行MySQL主库容器
主库设置docker exec -it mysql-master mysql -uroot -p进入MySQL主库容器
主库设置CREATE USER 'root'@'%' IDENTIFIED BY 'password';创建用户并授权
主库设置SHOW MASTER STATUS;显示主库状态
从库设置docker run --name mysql-slave ...运行MySQL从库容器
从库设置docker exec -it mysql-slave mysql -uroot -p进入MySQL从库容器
从库设置CHANGE MASTER TO MASTER_HOST='IP', ...配置从库连接到主库
从库设置START SLAVE;启动从库复制
从库设置SHOW SLAVE STATUS;显示从库状态
验证主从复制CREATE TABLE test ...在主库创建测试表
验证主从复制SELECT * FROM test;在从库查询测试表

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/437945.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如何在 DAX 中计算多个周期的移动平均线

在 DAX 中计算移动聚合很容易。但是,计算一段时间内的移动平均值时会有一些陷阱。由于其中一些陷阱是定义问题,因此我们必须小心,不要选择错误的方法。让我们看看细节。欢迎来到雲闪世界。 添加图片注释,不超过 140 字&#xff08…

一种路径敏感的数据依赖分析算法

Falcon 1.方法1.1.Basic Rule1.2.改进算法1.3.跨函数分析 2.Evaluation2.1.设置2.2.value-flow分析2.3.Thin Slicing2.4.Bug Detection 参考文献 这篇工作发表于PLDI 24,提出了一种context- 以semi-path-sensitive的数据依赖分析算法,解决path-sensitive…

css中背景色、背景图的使用

1、同时使用背景色、背景图片 参考链接:链接 以下样式,背景色在图片下方(缺点:图片不透明时,背景色会被完全遮挡。) .header {height: 100%;width: 100%;background-color: #000;background-image: url(/static/images/back.pn…

thinkphp6开发的通用网站系统源码

thinkphp6开发的通用网站系统源码。 基于ThinkPHP6框架开发的通用后台权限管理系统,底层采用国内最流行的ThinkPHP6框架, 支持内容管理、文章管理、用户管理、权限管理、角色管理等功能。 代码下载百度网盘

jenkins部署Maven和NodeJS项目

在 Java 项目开发中,项目的编译、测试、打包等是比较繁琐的,属于重复劳动的工作,浪费人力和时间成本。以往开发项目时,程序员往往需要花较多的精力在引用 jar 包搭建项目环境上,跨部门甚至跨人员之间的项目结构都有可能…

基于SSM的宿舍管理系统 (源码+定制+文档)

博主介绍: ✌我是阿龙,一名专注于Java技术领域的程序员,全网拥有10W粉丝。作为CSDN特邀作者、博客专家、新星计划导师,我在计算机毕业设计开发方面积累了丰富的经验。同时,我也是掘金、华为云、阿里云、InfoQ等平台…

【MAUI】CommunityToolkit社区工具包介绍

一、为什么需要声明式开发 .NET的MVVM,始于WPF,很古典,它甚至可能是现代前端框架“声明式开发”的鼻祖。声明式开发,之所以出现,是因为命令式开发在UI层和代码层上无法解耦的问题。如下图所示: 1、命令式开发:后台代码需要调用UI层的控件(label.Text),如果更新UI层…

stm32 bootloader跳转程序设计

文章目录 1、bootloader跳转程序设计&#xff08;1&#xff09;跳转程序&#xff08;2&#xff09;、app程序中需要注意<1>、在keil中ROM起始地址和分配的空间大小<2>、在system_stm32f4xx.c中设置VECT_TAB_OFFSET为需要偏移的地址<3>、main函数中使能中断 总…

C初阶(六)--- static 来喽

前言&#xff1a;C语言中有许多关键字&#xff08;关键字是预先保留的标识符&#xff0c;具有特殊意义&#xff0c;不能用作变量 名、函数名等普通标识符。&#xff09; 比如&#xff1a;前面在变量与常量那一节提到的extern 就是一个关键字&#xff0c;应该还记得e…

Grafana链接iframe嵌入Web前端一直跳登录页面的问题记录

概述 公司有个项目使用到Grafana作为监控界面,因为项目方的环境极其复杂,仅物理隔离的环境就有三四个,而且每个都得部署项目,今天在某个环境测试,查看界面遇到一个比较奇怪的Grafana问题,后面针对该问题进行跟踪分析并解决,故而博文记录,用于备忘。 问题 登录项目We…

Pikachu-Sql Inject-insert/update/delete注入

insert 注入 插入语句 insert into tables values(value1,value2,value3); 如&#xff1a;插入用户表 insert into users (id,name,password) values (id,username,password); 当点击注册 先判断是否有SQL注入漏洞&#xff0c;经过判断之后发现存在SQL漏洞。构造insert的pa…

Redis 篇-深入了解在 Linux 的 Redis 网络模型结构及其流程(阻塞 IO、非阻塞 IO、IO 多路复用、异步 IO、信号驱动 IO)

&#x1f525;博客主页&#xff1a; 【小扳_-CSDN博客】 ❤感谢大家点赞&#x1f44d;收藏⭐评论✍ 文章目录 1.0 用户空间与内核空间概述 2.0 Redis 网络模型 2.1 Redis 网络模型 - 阻塞 IO 2.2 Redis 网络模型 - 非阻塞 IO 2.3 Redis 网络模型 - IO 多路复用 2.3.1 IO 多路复…

【mmengine】配置器(config)(入门)读取与使用

一、 介绍 MMEngine 实现了抽象的配置类&#xff08;Config&#xff09;&#xff0c;为用户提供统一的配置访问接口。 配置类能够支持不同格式的配置文件&#xff0c;包括 python&#xff0c;json&#xff0c;yaml&#xff0c;用户可以根据需求选择自己偏好的格式。 配置类提供…

【网路通信基础与实践番外二】TCP协议的流量控制和拥塞控制以及二者区别和例题

TCP协议是端对端的协议&#xff0c;因此在数据进行传输的过程受发送方&#xff0c;数据通道&#xff0c;接收方三方状态的影响。我们用水龙头来比喻数据发送方&#xff0c;水管来比喻数据通道&#xff0c;水桶来表示数据接收方。 图(a)表示水桶太小&#xff0c;来不及接受注入…

Unity实战案例全解析:RTS游戏的框选和阵型功能(3)生成范围检测框 +重置框选操作

前篇&#xff1a;Unity实战案例全解析&#xff1a;RTS游戏的框选和阵型功能&#xff08;2&#xff09; 生成选择框-CSDN博客 本案例来源于unity唐老狮&#xff0c;有兴趣的小伙伴可以去泰克在线观看该课程 我只是对重要功能进行分析和做出笔记分享&#xff0c;并未无师自通&…

给出向量求叉乘(在垂直的时候可以简化)

1、可以用那个求行列式的方法求叉乘。 2、在两个向量垂直的时候&#xff0c;可以用简化方法&#xff0c;前面幅度相乘&#xff0c;然后ex叉乘ey是ez 注意叉乘结果无论原向量是不是垂直&#xff0c;叉乘结果都与两个向量垂直

深入探秘 Java 网络编程:从基础到多线程服务器的全方位指南

我的主页&#xff1a;2的n次方_ Java 作为一门功能强大的编程语言&#xff0c;不仅在桌面应用、移动开发、后端开发等领域表现出色&#xff0c;还在网络编程中拥有广泛的应用。网络编程涉及在两个或多个设备之间通过网络进行通信&#xff0c;这对于构建分布式系统、客户端…

【Linux】进程管理:状态与优先级调度的深度分析

✨ 山海自有归期&#xff0c;风雨自有相逢 &#x1f30f; &#x1f4c3;个人主页&#xff1a;island1314 &#x1f525;个人专栏&#xff1a;Linux—登神长阶 ⛺️ 欢迎关注&#xff1a;&#x1f44d;点赞 &#x1…

spring揭秘25-springmvc03-其他组件(文件上传+拦截器+处理器适配器+异常统一处理)

文章目录 【README】【1】文件上传与MultipartResolver【1.1】使用MultipartResolver进行文件上传【1.2】springmvc处理multipart多部件请求流程【1.3】使用springmvc上传文件代码实现&#xff08;springmvc6.10版本&#xff09;&#xff1a; 【2】Handler与HandlerAdaptor&…

stm32单片机学习 - MDK仿真调试

1 进行环境配置 点击 Options for Target&#xff0c;也就是我们俗称的魔法棒。 将"C/C"中的Optimization选项选为Level 0(-O0) 作用:优化等级调为0级,便于调试时分析代码 勾选"Debug"中的Load Application at Starup 和 Run to main() 选项 作用:Load…