当前位置: 首页 > news >正文

对docker安装的mysql实现主从同步

1:分别安装mysql主,从数据库

        将主库容器名称改为mysql_master,将从库容器名称改为mysql_slave

        安装教程:docker安装mysql

2:配置主库的my.cnf挂载文件

[mysqld]
#log-bin:表示启用binlog功能,并指定二进制日志的存储目录。
log-bin=mysql-bin
#binlog_format:binlog日志格式,mysql默认采用statement,建议使用mixed。
binlog_format=mixed
#server-id:指定唯一的servr ID,主从数据库的server-id必须是不一样的数字。
server-id=1
#binlog-ignore-db:binlog日志不记录指定库的更新。
binlog-ignore-db=mysql,sys,performance_schema,information_schema
#binlog-do-db:binlog日志只记录指定库的更新。由于我们需要配置所有库的同步,故不设置该参数。
# 开启gtid
gtid_mode=ON
#enforce-gtid-consistency:强制执行GTID一致性检查。
enforce-gtid-consistency=true

3:重启主库

        docker restart mysql

4:配置从库的my.cnf挂载文件

[mysqld]
log-bin=mysql-bin
binlog_format=mixed
server-id=2
#replicate-ignore-db:不进行主从复制的数据库名。 
replicate-ignore-db=mysql,sys,performance_schema,information_schema
#log-slave-updates:记录从库更新,允许链式复制( A-B-C )。当该从库作为其他库的主库时,需要添加该参数。 
log-slave-updates
#replicate-do-db:要进行主从复制的数据库名。由于我们需要配置所有库的同步,故不设置该参数。 
#slave-skip-errors:从库同步时忽略遇到的错误。
slave-skip-errors=all
# 开启gtid
gtid_mode=ON
#enforce-gtid-consistency:强制执行GTID一致性检查。
enforce-gtid-consistency=true

5:配置基于GTID的复制

        1)进入主库,并配置授权用户

#进入docker容器
docker exec -it mysql-master /bin/bash
#登录mysql
mysql -uroot -p您的密码
#暂时禁用当前会话的二进制日志记录,防止创建用户和授予权限的操作被记录到二进制日志中,从而避免在主从    复制中重复执行这些操作。
#注意事项:这个设置只对当前会话有效,不会影响其他会话
mysql> SET SQL_LOG_BIN=0;
#创建用户
mysql> CREATE USER 用户名@'%' IDENTIFIED WITH mysql_native_password BY '密码';
#作用:授予 slaveuser 用户 REPLICATION SLAVE 权限,使其能够读取主库的二进制日志,用于复制。
#注意事项:*.* 表示所有数据库和表
mysql> grant replication slave on *.* to slaveuser@'%';
#作用:使权限更改立即生效。
#注意事项:这是一个必要的步骤,确保新创建的用户和权限立即可用。
mysql> flush privileges;
#作用:重新启用当前会话的二进制日志记录。
#注意事项:同样,这个设置只对当前会话有效。
mysql> SET SQL_LOG_BIN=1;

        2)进入从库,配置主从同步

#进入docker容器
docker exec -it mysql-master /bin/bash
#登录mysql
mysql -uroot -p您的密码
#作用:停止从库上的所有复制线程,包括 I/O 线程和 SQL 线程。
#注意事项:在进行任何配置更改之前,先停止从库复制,以避免数据不一致。
mysql> stop slave;
#作用:配置从库连接到主库的信息,包括主库的 IP 地址、端口、用户名、密码以及启用 GTID(全局事务标识符)自动定位。
#参数说明:
#MASTER_HOST: 主库的 IP 地址。
#MASTER_PORT: 主库的 MySQL 端口。
#MASTER_USER: 用于复制的用户名。
#MASTER_PASSWORD: 用于复制的密码。
#MASTER_AUTO_POSITION: 启用 GTID 自动定位,确保从库能够自动同步主库的事务。
mysql> change master to master_host='ip',master_port=port,master_user='userName',master_password='password',master_auto_position = 1;
#作用:启动从库上的所有复制线程,包括 I/O 线程和 SQL 线程。
#注意事项:确保从库能够成功连接到主库并开始复制
mysql> start slave;#如果报错可以尝试清除从服务器上的复制信息,命令:mysql> reset slave; #查看同步状态
mysql> show slave status\G;
#如果 Slave_IO_Running 和 Slave_SQL_Running 的值都是 Yes ,说明配置成功。
#如果 Slave_IO_Running 为 No ,则查看后面的 Last_IO_Error 字段,里面会有详细的出错原因。
#如果 Slave_SQL_Running 为 No ,则查看后面的 Last_SQL_Error 字段,里面会有详细的出错原因。#查看GTID是否开启
mysql> show variables like 'gtid_mode';

6:从库异常后解决方案

#进入从库
docker exec -it mysql-master /bin/bash
#登录mysql
mysql -uroot -p您的密码
#停止slave
stop slave;
#同步数据配置
#参数说明:
#MASTER_HOST: 主库的 IP 地址。
#MASTER_PORT: 主库的 MySQL 端口。
#MASTER_USER: 用于复制的用户名。
#MASTER_PASSWORD: 用于复制的密码。
#MASTER_AUTO_POSITION: 启用 GTID 自动定位,确保从库能够自动同步主库的事务。
mysql> change master to master_host='ip',master_port=port,master_user='userName',master_password='password',master_auto_position = 1;
#启动slave
start slave;

        

相关文章:

对docker安装的mysql实现主从同步

1:分别安装mysql主,从数据库 将主库容器名称改为mysql_master,将从库容器名称改为mysql_slave 安装教程:docker安装mysql 2:配置主库的my.cnf挂载文件 [mysqld] #log-bin:表示启用binlog功能,并指定二进制日志的存储目录。 log-binmysql-bin #binlog_f…...

【不定长滑动窗口】【灵神题单】【刷题笔记】

采摘水果 fruits[i]表示第i棵树上的水果种类目的是尽可能多收集水果规矩: 只有两个篮子,且每个篮子只能装一种水果,但是每个篮子能装的总量没限制一旦开始采摘,就会连续采摘,把两个篮子都用掉也就是说,采摘到最后一颗…...

AI写论文指令

一、论文选题指令 1、确定研究对象:我是一名xxx,请从以下素材内容中,结合xx相关知识,提炼出可供参考的学术概念 。以下是结合素材内容,提炼出的几个可供参考的学术概念 概念a:概念b:概念C&…...

2625扁平化嵌套数组

请你编写一个函数,它接收一个 多维数组 arr 和它的深度 n ,并返回该数组的 扁平化 后的结果。 多维数组 是一种包含整数或其他 多维数组 的递归数据结构。 数组 扁平化 是对数组的一种操作,定义是将原数组部分或全部子数组删除,…...

QT6学习第五天 第一个QT Quick程序

QT6学习第五天 第一个QT Quick程序 概述创建Qt Quick程序使用Qt资源文件 概述 如果将程序的用户界面成为前端,程序的数据存储和逻辑业务成为后端,那么传统QT Widgets程序的前后端都是用C完成的。对于现代软件开发而言,前端演化速度远快于后端…...

【开发商城系统】

在广西开发商城系统,可以按照以下步骤进行: 确定项目需求:与客户沟通,了解商城系统所需的功能和特性,并确定项目的预算和时间限制。 进行市场调研:了解广西地区的电商市场情况,包括竞争对手、消…...

(11)(2.2) BLHeli32 and BLHeli_S ESCs(二)

文章目录 前言 1 传递支持 前言 BLHeli 固件和配置应用程序的开发是为了允许配置 ESC 并提供额外功能。带有此固件的 ESC 允许配置定时、电机方向、LED、电机驱动频率等。在尝试使用 BLHeli 之前,请按照 DShot 设置说明进行操作(DShot setup instructions)。 1 传…...

C++ 11重点总结1

智能指针 智能指针: C11引入了四种智能指针: auto_ptr(已弃用)、unique_ptr、shared_ptr和weak_ptr。智能指针可以更有效地管理堆内存,并避免常见的内存泄漏问题。 shared_ptr: 自定义删除器。 shared_ptr使用引用计数来管理它指向的对象的生命周期。多个shared_ptr实例可以指向…...

海康VsionMaster学习笔记(学习工具+思路)

一、前言 VisionMaster算法平台集成机器视觉多种算法组件,适用多种应用场景,可快速组合算法,实现对工件或被测物的查找测量与缺陷检测等。VM算法平台依托海康威视在图像领域多年的技术积淀,自带强大的视觉分析工具库,可…...

基于Python语言的Web爬虫设计源码

基于Python语言的Web爬虫设计源码地址 该项目是一个基于Python语言的Web爬虫设计源码,包含20个文件,其中18个为Python源代码文件,1个Markdown文件用于文档说明,以及1个配置文件。该爬虫专注于网络信息的抓取与处理。 关键词 Py…...

学习日志 --A5rZ

24.11.27 0001:2024 强网杯青少年专项赛 EnterGam 复现已完成 0002:在x86上模拟arm64(搁置,原因:资料过少,可行性过低) 0003:2024 强网杯青少年专项赛 Flip_over 复现终止(无arm真机) 0004: 开始复现 2024 强网杯青少年专项赛 journey_story...

JVM_垃圾收集器详解

1、 前言 JVM就是Java虚拟机,说白了就是为了屏蔽底层操作系统的不一致而设计出来的一个虚拟机,让用户更加专注上层,而不用在乎下层的一个产品。这就是JVM的跨平台,一次编译,到处运行。 而JVM中的核心功能其实就是自动…...

Javascript Insights: Visualizing Var, Let, And Const In 2024

11/2024 出版 MP4 |视频:h264, 19201080 |音频:AAC,44.1 KHz 语言:英语 |大小: 2.96 GB |时长: 5 小时 34 分钟 为所有认真的 JavaScript 开发人员可视化与 VAR、LET、CONST 和 EXECUTON CONTE…...

KL散度改写为一个可用于优化的形式

理解 KL 散度及其公式推导过程 在信息论和概率论中,KL散度(Kullback-Leibler Divergence)是衡量两个概率分布之间差异的重要工具。本文将从 KL 散度的定义入手,详细解析其公式来源以及如何将其改写为一个可用于优化的形式。 1. 什…...

Java代码操作Zookeeper(使用 Apache Curator 库)

1. Zookeeper原生客户端库存在的缺点 复杂性高:原生客户端库提供了底层的 API,需要开发者手动处理很多细节,如连接管理、会话管理、异常处理等。这增加了开发的复杂性,容易出错。连接管理繁琐:使用原生客户端库时&…...

【Linux】Make/Makefile

这个3/4行的语法和1/2行是一样的。也是依赖关系和依赖方法。 make命令扫描makefile文件时,从上向下扫描,默认形成一个目标文件。 指定make clean的时候才回去执行对应的清除。 为什么要给我们的clean.PHONY:clean声明它是伪目标呢? PHONY类…...

C++练级计划->《多态》虚函数表,菱形继承多态

目录 什么是多态? 多态的条件 虚函数: 虚函数的重写: 协变 析构函数的重写 C11 final 和 override final: override: 总结: 三重对比:重载重写重定义对比 抽象类 多态的原理 虚函数…...

OkHttp3 - 2. OkHttp的核心组件与架构

1 OkHttp的工作原理 OkHttp3 的核心设计遵循以下原则: 请求与响应的分离:通过 Request 和 Response 对象解耦请求构建与结果处理。异步与同步支持:使用 Call 对象管理请求,可以同步或异步执行。高效连接复用:通过连接…...

异或操作解决一些问题

前提: 异或操作符合交换律,结合律(因为其根本上来抽象理解,就是查看所有项二进制数相同位是否有奇数个1,对运算结果二进制数而言,没有该位为0,有该位为1,与顺序无关)。 …...

操作系统之输入输出

🧑 博主简介:CSDN博客专家,历代文学网(PC端可以访问:https://literature.sinhy.com/#/literature?__c1000,移动端可微信小程序搜索“历代文学”)总架构师,15年工作经验,…...

相机Camera日志实例分析之二:相机Camx【专业模式开启直方图拍照】单帧流程日志详解

【关注我,后续持续新增专题博文,谢谢!!!】 上一篇我们讲了: 这一篇我们开始讲: 目录 一、场景操作步骤 二、日志基础关键字分级如下 三、场景日志如下: 一、场景操作步骤 操作步…...

MMaDA: Multimodal Large Diffusion Language Models

CODE : https://github.com/Gen-Verse/MMaDA Abstract 我们介绍了一种新型的多模态扩散基础模型MMaDA,它被设计用于在文本推理、多模态理解和文本到图像生成等不同领域实现卓越的性能。该方法的特点是三个关键创新:(i) MMaDA采用统一的扩散架构&#xf…...

Java - Mysql数据类型对应

Mysql数据类型java数据类型备注整型INT/INTEGERint / java.lang.Integer–BIGINTlong/java.lang.Long–––浮点型FLOATfloat/java.lang.FloatDOUBLEdouble/java.lang.Double–DECIMAL/NUMERICjava.math.BigDecimal字符串型CHARjava.lang.String固定长度字符串VARCHARjava.lang…...

BCS 2025|百度副总裁陈洋:智能体在安全领域的应用实践

6月5日,2025全球数字经济大会数字安全主论坛暨北京网络安全大会在国家会议中心隆重开幕。百度副总裁陈洋受邀出席,并作《智能体在安全领域的应用实践》主题演讲,分享了在智能体在安全领域的突破性实践。他指出,百度通过将安全能力…...

html-<abbr> 缩写或首字母缩略词

定义与作用 <abbr> 标签用于表示缩写或首字母缩略词&#xff0c;它可以帮助用户更好地理解缩写的含义&#xff0c;尤其是对于那些不熟悉该缩写的用户。 title 属性的内容提供了缩写的详细说明。当用户将鼠标悬停在缩写上时&#xff0c;会显示一个提示框。 示例&#x…...

2025季度云服务器排行榜

在全球云服务器市场&#xff0c;各厂商的排名和地位并非一成不变&#xff0c;而是由其独特的优势、战略布局和市场适应性共同决定的。以下是根据2025年市场趋势&#xff0c;对主要云服务器厂商在排行榜中占据重要位置的原因和优势进行深度分析&#xff1a; 一、全球“三巨头”…...

Linux中《基础IO》详细介绍

目录 理解"文件"狭义理解广义理解文件操作的归类认知系统角度文件类别 回顾C文件接口打开文件写文件读文件稍作修改&#xff0c;实现简单cat命令 输出信息到显示器&#xff0c;你有哪些方法stdin & stdout & stderr打开文件的方式 系统⽂件I/O⼀种传递标志位…...

精益数据分析(98/126):电商转化率优化与网站性能的底层逻辑

精益数据分析&#xff08;98/126&#xff09;&#xff1a;电商转化率优化与网站性能的底层逻辑 在电子商务领域&#xff0c;转化率与网站性能是决定商业成败的核心指标。今天&#xff0c;我们将深入解析不同类型电商平台的转化率基准&#xff0c;探讨页面加载速度对用户行为的…...

Axure零基础跟我学:展开与收回

亲爱的小伙伴,如有帮助请订阅专栏!跟着老师每课一练,系统学习Axure交互设计课程! Axure产品经理精品视频课https://edu.csdn.net/course/detail/40420 课程主题:Axure菜单展开与收回 课程视频:...

Springboot多数据源配置实践

Springboot多数据源配置实践 基本配置文件数据库配置Mapper包Model包Service包中业务代码Mapper XML文件在某些复杂的业务场景中,我们可能需要使用多个数据库来存储和管理不同类型的数据,而不是仅仅依赖于单一数据库。本技术文档将详细介绍如何在 Spring Boot 项目中进行多数…...