对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年工作经验,…...
STM32+rt-thread判断是否联网
一、根据NETDEV_FLAG_INTERNET_UP位判断 static bool is_conncected(void) {struct netdev *dev RT_NULL;dev netdev_get_first_by_flags(NETDEV_FLAG_INTERNET_UP);if (dev RT_NULL){printf("wait netdev internet up...");return false;}else{printf("loc…...

(二)原型模式
原型的功能是将一个已经存在的对象作为源目标,其余对象都是通过这个源目标创建。发挥复制的作用就是原型模式的核心思想。 一、源型模式的定义 原型模式是指第二次创建对象可以通过复制已经存在的原型对象来实现,忽略对象创建过程中的其它细节。 📌 核心特点: 避免重复初…...
leetcodeSQL解题:3564. 季节性销售分析
leetcodeSQL解题:3564. 季节性销售分析 题目: 表:sales ---------------------- | Column Name | Type | ---------------------- | sale_id | int | | product_id | int | | sale_date | date | | quantity | int | | price | decimal | -…...
Linux离线(zip方式)安装docker
目录 基础信息操作系统信息docker信息 安装实例安装步骤示例 遇到的问题问题1:修改默认工作路径启动失败问题2 找不到对应组 基础信息 操作系统信息 OS版本:CentOS 7 64位 内核版本:3.10.0 相关命令: uname -rcat /etc/os-rele…...
代码随想录刷题day30
1、零钱兑换II 给你一个整数数组 coins 表示不同面额的硬币,另给一个整数 amount 表示总金额。 请你计算并返回可以凑成总金额的硬币组合数。如果任何硬币组合都无法凑出总金额,返回 0 。 假设每一种面额的硬币有无限个。 题目数据保证结果符合 32 位带…...
08. C#入门系列【类的基本概念】:开启编程世界的奇妙冒险
C#入门系列【类的基本概念】:开启编程世界的奇妙冒险 嘿,各位编程小白探险家!欢迎来到 C# 的奇幻大陆!今天咱们要深入探索这片大陆上至关重要的 “建筑”—— 类!别害怕,跟着我,保准让你轻松搞…...
苹果AI眼镜:从“工具”到“社交姿态”的范式革命——重新定义AI交互入口的未来机会
在2025年的AI硬件浪潮中,苹果AI眼镜(Apple Glasses)正在引发一场关于“人机交互形态”的深度思考。它并非简单地替代AirPods或Apple Watch,而是开辟了一个全新的、日常可接受的AI入口。其核心价值不在于功能的堆叠,而在于如何通过形态设计打破社交壁垒,成为用户“全天佩戴…...
HTML前端开发:JavaScript 获取元素方法详解
作为前端开发者,高效获取 DOM 元素是必备技能。以下是 JS 中核心的获取元素方法,分为两大系列: 一、getElementBy... 系列 传统方法,直接通过 DOM 接口访问,返回动态集合(元素变化会实时更新)。…...
如何配置一个sql server使得其它用户可以通过excel odbc获取数据
要让其他用户通过 Excel 使用 ODBC 连接到 SQL Server 获取数据,你需要完成以下配置步骤: ✅ 一、在 SQL Server 端配置(服务器设置) 1. 启用 TCP/IP 协议 打开 “SQL Server 配置管理器”。导航到:SQL Server 网络配…...

软件工程 期末复习
瀑布模型:计划 螺旋模型:风险低 原型模型: 用户反馈 喷泉模型:代码复用 高内聚 低耦合:模块内部功能紧密 模块之间依赖程度小 高内聚:指的是一个模块内部的功能应该紧密相关。换句话说,一个模块应当只实现单一的功能…...