基于 Docker 的 MySQL 主从复制搭建(Mac M1版本)
系统:Macbook M1
镜像版本:mysql:5.7
如果是要查 slave连接不上 master的问题,可以直接跳到文章末尾踩坑处
准备工作
- 拉取镜像
docker pull mysql:5.7
- 本地数据卷挂载
因为mysql不挂载的话,重启丢失数据,所以在本地创建三个空的文件夹
conf、data、log即可
部署mysql_master(主)
- 运行master容器
不加
--platform linux/amd64会导致出现
The requested image's platform (linux/amd64) does not match the detected host platform (linux/arm64/v8) and no specific platform was requested的提示,
容器虽然可以通过Docker Desktop手动启动,但是总觉得这样不对,然后谷歌问题之后看到这个篇文章:https://stackoverflow.com/questions/72152446/warning-the-requested-images-platform-linux-amd64-does-not-match-the-detecte后说加了这个就可以不报错
docker run --platform linux/amd64 -p 3309:3306 --name mysql_master \-v /Users/miaomk/docker/volume/mysql/cluster/_master/log:/var/log/mysql \-v //Users/miaomk/docker/volume/mysql/cluster/_master/data:/var/lib/mysql \-v /Users/miaomk/docker/volume/mysql/cluster/_master/conf:/etc/mysql \-e MYSQL_ROOT_PASSWORD=master123 \-d mysql:5.7
- 查看容器是否启动成功
docker ps

- 测试数据库连接

- 配置mysql_master挂载位置的my.cnf
[mysqld]
#要唯一
server_id=100
#开启bin log
log-bin=master-mysql.bin
binlog_format=mixed
expire_logs_days=7
#跳过主健重复
slave_skip_errors=1062
- 重启mysql_master容器
docker restart mysql_masterdocker ps
6.进行mysql_master容器创建slave用户并赋予对应的权限便于复制
#进入容器
docker exec -it mysql_master /bin/bash
#进入mysql
mysql -u root -p
# 5.7 可以创建用户和授权都一起处理,但是8.0以上得分开写
GRANT REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'Slave1'@'%' identified by 'Slave123456';
- 测试Slave1用户是否可以使用
SELECTUSER,HOST,account_locked,password_expired
FROMmysql.USER;


部署mysql_salve(从)
- 运行slave容器并查看状态
docker run --platform linux/amd64 -p 3310:3306 --name mysql_slave \-v /Users/miaomk/docker/volume/mysql/cluster/_slave/log:/var/log/mysql \-v //Users/miaomk/docker/volume/mysql/cluster/_slave/data:/var/lib/mysql \-v /Users/miaomk/docker/volume/mysql/cluster/_slave/conf:/etc/mysql \-e MYSQL_ROOT_PASSWORD=root \-d mysql:5.7


- 配置mysql_salve挂载位置的my.cnf
[mysqld]server_id=102log-bin=master-mysql-slave.bin
binlog_cache_size=1M
binlog_format=mixed
expire_logs_days=7
#跳过主健重复
slave_skip_errors=1062
relay_log=master-mysql-relay-bin
#将复制事件写进自己的二进制日志
log_slave_updates=1
#replica 设置为只读(具有super权限的用户除外)
read_only=1
- 重启mysql_slave容器并进入mysql_master容器内部查看对应内容
docker restart mysql_slavedocker ps#进入mysql_master容器内查询master内容
docker exec -it mysql_master /bin/bashmysql -uroot -pshow master status;

File和 Position都是我们后面要在mysql_slave容器中需要用到的
- 查询本机的ip
ifconfig

- 进入mysql_slave容器内开启slave
docker exec -it mysql_slave /bin/bashmysql -uroot -p#设置master信息
CHANGE MASTER TO master_host = '192.168.124.3',master_user = 'Slave1',master_password = 'Slave123456',master_port = 3309,master_log_file = 'mysql-master.000001',master_log_pos = 618,master_connect_retry = 30;#查询slave状态
show slave status \G#开启slave
start slave;#开启slave后查看状态
show slave status \G
命令说明:
master_host:Master 的地址,看别人的文章里这里说的都是指的容器的独立 ip, 可以通过 docker inspect --format=‘{{.NetworkSettings.IPAddress}}’ 容器名称 | 容器 id 查询容器的 ip,但是我自己实验下来发现如果用这个host的话mysql_slave里的slave连不上master,看到一篇文章发现用的本机IP,实验后发现对我可行,大家可以参考一下
master_port:Master 的端口号,指的是容器的端口号
master_user:用于数据同步的用户
master_password:用于同步的用户的密码
master_log_file:指定 Slave 从哪个日志文件开始复制数据,即上文中提到的 File 字段的值
master_log_pos:从哪个 Position 开始读,即上文中提到的 Position 字段的值
master_connect_retry:如果连接失败,重试的时间间隔,单位是秒,默认是 60 秒

这样就代表上述的slave能连上master了

测试:在主库mysql_master中建库建表,插入数据,再去从库中查看,验证主从同步
最后:slave无法连接上master的踩坑分享
1.

File和 Position设置不对,需要重新去mysql_master里面 show master status;查看
2. error connect to master
-
网络不通 检查 ip, 端口(
可能跟我一样是需要本机的ip,而不是容器的ip或者127.0.0.1或者localhsot) -
密码不对 检查是否创建用于同步的用户和用户密码是否正确
文章参考:https://blog.csdn.net/csdnfanguyinheng/article/details/123239722
相关文章:
基于 Docker 的 MySQL 主从复制搭建(Mac M1版本)
系统:Macbook M1 镜像版本:mysql:5.7 如果是要查 slave连接不上 master的问题,可以直接跳到文章末尾踩坑处 准备工作 拉取镜像 docker pull mysql:5.7本地数据卷挂载 因为mysql不挂载的话,重启丢失数据,所以在本地创…...
【Locomotor运动模块】瞬移
文章目录 一、原理二、两种类型1、Instant(立刻)2、Dash(猛冲) 三、瞬移区域、瞬移点1、瞬移区域2、瞬移点 一、原理 抛物线指针选择好目标位置,然后告诉瞬移预设体:你想法把游戏区域弄到目标位置来 解释:抛物线指针选…...
【负载均衡】常见的负载均衡策略有哪些?
文章目录 前言负载均衡分类常见负载均衡策略小结 前言 负载均衡策略是实现负载均衡器的关键,而负载均衡器又是分布式系统中不可或缺的重要组件。使用它有助于提高系统的整体性能、可用性、可靠性和安全性,同时支持系统的扩展和故障容忍性。对于处理大量…...
ChatGPT如何应对紧急救援和医疗应急?
ChatGPT在紧急救援和医疗应急方面具有潜在的重要用途。它可以用于提供信息、建议和支持,以帮助应对各种突发事件,如自然灾害、流行病爆发、事故等。以下是ChatGPT如何应对紧急救援和医疗应急的方式以及相关挑战的详细讨论。 ### 紧急救援 #### 1. 提供…...
vue3 ref reactive响应式数据 赋值的问题
文章目录 vue3 ref reactive响应式数据 赋值的问题场景1:将响应式数据赋值请求后的数据错误示范:直接赋值正确写法 场景2:响应式数据解构之后失去响应式原因分析解决办法 toRefs/toRef方法创建ref引用对象 vue3 ref reactive响应式数据 赋值的问题 doing…...
【美团秋招】20230922小美的彩虹糖
小美的彩虹糖 小美有很多的彩虹糖,每颗彩虹糖都有一个颜色,她每天可以吃两颗彩虹糖,如果今天吃的彩虹糖组合是之前没吃过的组合,则小美今天会很高兴。 例如,小美有 6 颗彩虹糖,颜色分别是 [1,1,4,5,1,4]。…...
论文阅读_扩散模型_DM
英文名称: Deep Unsupervised Learning using Nonequilibrium Thermodynamics 中文名称: 使用非平衡热力学原理的深度无监督学习 论文地址: http://arxiv.org/abs/1503.03585 代码地址: https://github.com/Sohl-Dickstein/Diffusion-Probabilistic-Models 时间: 2015-11-18 作…...
【每日运维】RockyLinux8.6升级OpenSSH9.4p1
为什么需要升级openssh呢,因为很多项目进行漏扫结果都会涉及到这个服务器核心组件,一想到以前升级openssh带来的各种依赖性问题就头疼,不管是什么发行版,升级这个东西真的很烦,这次发现可能还会有好一点的通用一点的升…...
libdrm全解析三十八 —— 源码全解析(35)
接前一篇文章:libdrm全解析三十七 —— 源码全解析(34) 本文参考以下博文: DRM 驱动程序开发(VKMS) 特此致谢! 前一篇文章讲解完了drmModeSetCrtc(crtc_id, fb_id, connector_id, mode)&#…...
jar包和war包的区别
SpringBoot项目既可以打成war包发布,也可以找成jar包发布。 jar包 jar包:直接通过内置Tomcat运行,不需要额外安装Tomcat。如需修改内置Tomcat的配置,只需要在SpringBoot的配置文件中配置。内置Tomcat没有自己的日志输出࿰…...
CloudCompare 二次开发(10)——点云投影到平面
目录 一、概述二、代码集成三、结果展示一、概述 不依赖任何第三方点云相关库,使用CloudCompare编程实现点云投影到指定平面,具体计算原理见:PCL 点云投影到拟合平面 二、代码集成 1、mainwindow.h文件public中添加: void doActionProjectToPlane(); // 投影到平面2、…...
如何制作并运行 jar 程序
以下是用 Intellij 制作 jar 程序,并运行的方法。 【1】新建工程,保持默认选项,Next 【2】保持默认选项,Next 【3】给工程命名,设置保存位置,Finish 【4】新建工程结束,进入开发界面 【5】展开…...
Hadoop MapReduce 调优参数
文章目录 MapReduce 调优参数详解MapReduce 调优参数一键复制 前言: 下列参数基于 hadoop v3.1.3 版本,共三台服务器,配置都为 4 核,4G 内存。 MapReduce 调优参数详解 这个参数定义了在 Reduce 阶段同时进行的拷贝操作的数量&…...
springboot 与 Redis整合
SpringBoot 操作数据:Spring-data jpa jdbc mongodb redis! SpringData 也是和SpringBoot 齐名的项目! 说明:在SpringBoot2.X 之后,原来使用的jedis被替换成了lettuce jedis: 采用的直连,多个线程操作的话&…...
如何高效地设计测试用例并评审
编写出好的测试用例是每一个测试工程师的职责,但在实际工作中大家写的测试用例往往需要不断地修改才能使用,这不仅浪费了时间,还容易让测试工程师产生自我否定的情绪,甚至在团队中产生各种矛盾。 那如何高效地设计测试用例呢&…...
基于python+Django知识图谱的医疗问答系统设计与实现
摘 要 从信息技术的发展至今,各色各样的技术能够满足各类人群的需求,能够让各种业务行业的痛点变成能够可以解决的方法,随着我们经济的不断提高,越来越多的人都该关注健康,那么健康饮食、健康医疗是我们生活中所追求的…...
cuda编程常见问题
cuda环境配置 参考链接 https://blog.csdn.net/weixin_43788327/article/details/125823507?spm1001.2014.3001.5506 疑难问题 在学习《GPU高性能编程CUDA实战》这本书时,发现书里面的代码很多变量都没定义过,经过搜索发现这都是书上自带的代码。 代…...
QTday3
作业1:通过对话框实现保存文件 void burger::on_saveBtn_clicked() {//调用函数,获取文件路径QString filename QFileDialog::getSaveFileName(this,"选择文件夹","./","Text File(*.txt)");if(filename.isNull()){QMes…...
docker镜像是如何导入的?
镜像导入是由image/tarexport/load.go#tarexporter.Load()完成的 以下代码参考github.com/docker/docker版本v0.0.0-20181129155816-baab736a3649 主要是注册镜像信息以及解包镜像tar流到新root 导出和保存的区别在于 导出(export): 仅导出文件结构保存(save): 保存镜像历史和元…...
四川大学874考研真题00-23
22, 2022年硕士学位研究生入学考试试题回忆版 数据结构 1.一个时间复杂度为n2 的算法运行,m1算n个问题用时1秒,m2处理器是m1效率的64倍,则m2每秒能计算()个问题。 A. 64n B. 8n …...
使用van-uploader 的UI组件,结合vue2如何实现图片上传组件的封装
以下是基于 vant-ui(适配 Vue2 版本 )实现截图中照片上传预览、删除功能,并封装成可复用组件的完整代码,包含样式和逻辑实现,可直接在 Vue2 项目中使用: 1. 封装的图片上传组件 ImageUploader.vue <te…...
Redis的发布订阅模式与专业的 MQ(如 Kafka, RabbitMQ)相比,优缺点是什么?适用于哪些场景?
Redis 的发布订阅(Pub/Sub)模式与专业的 MQ(Message Queue)如 Kafka、RabbitMQ 进行比较,核心的权衡点在于:简单与速度 vs. 可靠与功能。 下面我们详细展开对比。 Redis Pub/Sub 的核心特点 它是一个发后…...
保姆级教程:在无网络无显卡的Windows电脑的vscode本地部署deepseek
文章目录 1 前言2 部署流程2.1 准备工作2.2 Ollama2.2.1 使用有网络的电脑下载Ollama2.2.2 安装Ollama(有网络的电脑)2.2.3 安装Ollama(无网络的电脑)2.2.4 安装验证2.2.5 修改大模型安装位置2.2.6 下载Deepseek模型 2.3 将deepse…...
面向无人机海岸带生态系统监测的语义分割基准数据集
描述:海岸带生态系统的监测是维护生态平衡和可持续发展的重要任务。语义分割技术在遥感影像中的应用为海岸带生态系统的精准监测提供了有效手段。然而,目前该领域仍面临一个挑战,即缺乏公开的专门面向海岸带生态系统的语义分割基准数据集。受…...
快刀集(1): 一刀斩断视频片头广告
一刀流:用一个简单脚本,秒杀视频片头广告,还你清爽观影体验。 1. 引子 作为一个爱生活、爱学习、爱收藏高清资源的老码农,平时写代码之余看看电影、补补片,是再正常不过的事。 电影嘛,要沉浸,…...
C# 表达式和运算符(求值顺序)
求值顺序 表达式可以由许多嵌套的子表达式构成。子表达式的求值顺序可以使表达式的最终值发生 变化。 例如,已知表达式3*52,依照子表达式的求值顺序,有两种可能的结果,如图9-3所示。 如果乘法先执行,结果是17。如果5…...
LCTF液晶可调谐滤波器在多光谱相机捕捉无人机目标检测中的作用
中达瑞和自2005年成立以来,一直在光谱成像领域深度钻研和发展,始终致力于研发高性能、高可靠性的光谱成像相机,为科研院校提供更优的产品和服务。在《低空背景下无人机目标的光谱特征研究及目标检测应用》这篇论文中提到中达瑞和 LCTF 作为多…...
Python竞赛环境搭建全攻略
Python环境搭建竞赛技术文章大纲 竞赛背景与意义 竞赛的目的与价值Python在竞赛中的应用场景环境搭建对竞赛效率的影响 竞赛环境需求分析 常见竞赛类型(算法、数据分析、机器学习等)不同竞赛对Python版本及库的要求硬件与操作系统的兼容性问题 Pyth…...
嵌入式学习之系统编程(九)OSI模型、TCP/IP模型、UDP协议网络相关编程(6.3)
目录 一、网络编程--OSI模型 二、网络编程--TCP/IP模型 三、网络接口 四、UDP网络相关编程及主要函数 编辑编辑 UDP的特征 socke函数 bind函数 recvfrom函数(接收函数) sendto函数(发送函数) 五、网络编程之 UDP 用…...
Axure 下拉框联动
实现选省、选完省之后选对应省份下的市区...
