基于 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 …...
YOLO26优化:TIP2026 FourierSR | FourierSR引入YOLO C3k2:解决感受野局限,实现高效全局特征交互
💡💡💡现有 YOLO C3k2 模块主要基于卷积与跨阶段部分连接,虽能平衡计算与精度,但仍存在以下问题: 感受野受限:堆叠的小核卷积(如 33)感受野有限,难以捕获全局上下文,对尺度变化大或远距离依赖的目标(如小目标、遮挡目标)特征提取能力不足。 特征混合效率低:通…...
字节跳动(抖音公司)GR3-Fourier V15.0 工业机械臂 | 运动学逆解+离线应急控制 纯C底层开源代码
GR3-Fourier V15.0 底层绝密技术密档 一、六轴机械臂逆运动学完整求解源码 #include "inverse_kinematic.h" #define PI 3.1415926535f #define L1 0.185f #define L2 0.210f //笛卡尔坐标转关节角度逆解 uint8_t IK_Solve(float x,float y,float z,float pitch,fl…...
Perplexity健康科普查询深度拆解(临床医生都在用的7个隐藏技巧)
更多请点击: https://codechina.net 第一章:Perplexity健康科普查询的底层逻辑与临床价值 Perplexity 健康科普查询并非传统关键词匹配式搜索引擎,其核心依托于实时检索增强生成(RAG)架构与权威医学知识图谱的深度融合…...
从‘人脑理解’到‘图解表达’:我是如何拆解小米便签项目结构的(附避坑指南)
从混沌到清晰:解码小米便签架构的思维可视化实战 第一次打开小米便签的源码时,我仿佛闯入了一个陌生的城市。高耸的Activity大厦、错综复杂的Manager街道、隐藏在角落的Helper小巷...作为刚入门的Android开发者,面对这样一个成熟项目的代码库…...
别再手动分色了!用MaterialIDsRandomGenerator插件5分钟搞定游戏模型贴图规划
游戏美术革命:用MaterialIDsRandomGenerator实现材质ID智能分配 在独立游戏开发中,一把生锈的骑士剑模型正静静躺在3dMax视口中。它的剑刃需要金属质感,剑柄需要皮革纹理,护手部分则需要复杂的雕花细节。传统工作流程中࿰…...
Linux 系统编程 文件篇 (二)
[TOC] Linux 系统编程 文件篇 (二) 1 open 函数介绍 1.1 标记位 上一篇的结尾,我们讲到了我们用的打开文件的库函数其实是封装了,这个 open 的系统调用,然后解释了这个 open 函数的 这个标记位,flags 是一个…...
终极Gmail桌面体验:告别浏览器标签混乱,拥抱高效邮件管理
终极Gmail桌面体验:告别浏览器标签混乱,拥抱高效邮件管理 【免费下载链接】gmail-desktop :postbox: Gmail desktop app for macOS, Windows & Linux (formerly Gmail Desktop) 项目地址: https://gitcode.com/gh_mirrors/gm/gmail-desktop 厌…...
基于CircuitPython与NeoPixel的智能圣诞树:从硬件搭建到动态灯光算法
1. 项目概述:从零打造一棵会“思考”的圣诞树又到年底了,看着家里那棵年复一年、只会默默发光的传统圣诞树,总觉得少了点“灵魂”。作为一个常年和微控制器、代码打交道的创客,我总琢磨着能不能给节日装饰加点科技感,让…...
10大好用WMS系统盘点!2026年企业WMS系统选型实战指南
在2026年企业数字化转型的浪潮中,WMS系统(仓储管理系统)已经成为提升供应链效率的核心工具。面对市面上琳琅满目的WMS系统,企业如何进行精准的WMS系统选型,成为了管理者面临的一大难题。为了帮助大家避坑,本…...
FreeRTOS+LwIP 2.2.0实战:tcpip_thread消息队列与定时器如何协同工作?
FreeRTOS与LwIP 2.2.0深度协同:消息队列与定时器的精妙舞步 在嵌入式网络开发中,实时操作系统与轻量级TCP/IP协议栈的协同工作一直是开发者关注的焦点。FreeRTOS作为嵌入式领域广泛使用的实时操作系统,与LwIP这一轻量级TCP/IP协议栈的组合&am…...
