当前位置: 首页 > 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年工作经验,…...

Chapter03-Authentication vulnerabilities

文章目录 1. 身份验证简介1.1 What is authentication1.2 difference between authentication and authorization1.3 身份验证机制失效的原因1.4 身份验证机制失效的影响 2. 基于登录功能的漏洞2.1 密码爆破2.2 用户名枚举2.3 有缺陷的暴力破解防护2.3.1 如果用户登录尝试失败次…...

谷歌浏览器插件

项目中有时候会用到插件 sync-cookie-extension1.0.0:开发环境同步测试 cookie 至 localhost,便于本地请求服务携带 cookie 参考地址:https://juejin.cn/post/7139354571712757767 里面有源码下载下来,加在到扩展即可使用FeHelp…...

Ubuntu系统下交叉编译openssl

一、参考资料 OpenSSL&&libcurl库的交叉编译 - hesetone - 博客园 二、准备工作 1. 编译环境 宿主机:Ubuntu 20.04.6 LTSHost:ARM32位交叉编译器:arm-linux-gnueabihf-gcc-11.1.0 2. 设置交叉编译工具链 在交叉编译之前&#x…...

React Native 开发环境搭建(全平台详解)

React Native 开发环境搭建(全平台详解) 在开始使用 React Native 开发移动应用之前,正确设置开发环境是至关重要的一步。本文将为你提供一份全面的指南,涵盖 macOS 和 Windows 平台的配置步骤,如何在 Android 和 iOS…...

智慧工地云平台源码,基于微服务架构+Java+Spring Cloud +UniApp +MySql

智慧工地管理云平台系统,智慧工地全套源码,java版智慧工地源码,支持PC端、大屏端、移动端。 智慧工地聚焦建筑行业的市场需求,提供“平台网络终端”的整体解决方案,提供劳务管理、视频管理、智能监测、绿色施工、安全管…...

无人机侦测与反制技术的进展与应用

国家电网无人机侦测与反制技术的进展与应用 引言 随着无人机(无人驾驶飞行器,UAV)技术的快速发展,其在商业、娱乐和军事领域的广泛应用带来了新的安全挑战。特别是对于关键基础设施如电力系统,无人机的“黑飞”&…...

STM32HAL库USART源代码解析及应用

STM32HAL库USART源代码解析 前言STM32CubeIDE配置串口USART和UART的选择使用模式参数设置GPIO配置DMA配置中断配置硬件流控制使能生成代码解析和使用方法串口初始化__UART_HandleTypeDef结构体浅析HAL库代码实际使用方法使用轮询方式发送使用轮询方式接收使用中断方式发送使用中…...

C语言中提供的第三方库之哈希表实现

一. 简介 前面一篇文章简单学习了C语言中第三方库(uthash库)提供对哈希表的操作,文章如下: C语言中提供的第三方库uthash常用接口-CSDN博客 本文简单学习一下第三方库 uthash库对哈希表的操作。 二. uthash库哈希表操作示例 u…...

安卓基础(Java 和 Gradle 版本)

1. 设置项目的 JDK 版本 方法1:通过 Project Structure File → Project Structure... (或按 CtrlAltShiftS) 左侧选择 SDK Location 在 Gradle Settings 部分,设置 Gradle JDK 方法2:通过 Settings File → Settings... (或 CtrlAltS)…...

c# 局部函数 定义、功能与示例

C# 局部函数:定义、功能与示例 1. 定义与功能 局部函数(Local Function)是嵌套在另一个方法内部的私有方法,仅在包含它的方法内可见。 • 作用:封装仅用于当前方法的逻辑,避免污染类作用域,提升…...