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

Centos 安装 Node.js 和 npm

方法2:使用 NVM(Node Version Manager)安装 安装 NVM curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.0/install.sh | bash 重新加载配置 source ~/.bashrc 安装最新的 LTS 版本的 Node.js nvm install --lts 验证安装…...

C语言——指针初阶(一)

目录 一.什么是指针??? 指针是什么? 指针变量: 总结: 总结: 二.指针和指针类型 指针-整数: 总结: 指针的解引用 总结: 三.野指针 如何规避野指针 往期…...

React Native 原生开发指南

写在前面 React Native (RN) 是一个用于构建跨平台移动应用的框架。它允许开发者使用 JavaScript 和 React 来编写应用程序,并将其转换为原生代码。虽然 RN 提供了许多内置的组件和 API,但有时候你可能需要访问原生平台的特定功能或性能优化。为此&…...

【前端】JavaScript中的柯里化(Currying)详解及实现

博客主页: [小ᶻ☡꙳ᵃⁱᵍᶜ꙳] 本文专栏: 前端 文章目录 💯前言💯什么是柯里化?💯柯里化的特点💯柯里化的简单示例💯通用的柯里化实现💯柯里化让代码更易读的原因&#x1f4af…...

解决 docker 部署 vsftpd 速度慢问题

解决 docker 部署 vsftpd 速度慢问题 Docker 部署 ftp version: 3.8services:ftps:image: fauria/vsftpdcontainer_name: my-ftpsenvironment:- FTP_USERyourusername- FTP_PASSyourpassword- PASV_ADDRESS192.168.0.123 # 使用环境变量或直接指定IP地址- PASV_MIN_PORT4900…...

Java基础夯实——2.9 多线程如何共享数据

在 Java 多线程编程中,共享数据通过以下几种方式实现: 1. 使用共享对象 多个线程可以通过引用同一个对象来实现数据共享。例如: class SharedData {private int count;public synchronized void increment() {count;}public synchronized …...

【Leetcode Top 100】234. 回文链表

问题背景 给你一个单链表的头节点 h e a d head head,请你判断该链表是否为 回文链表(回文 序列是向前和向后读都相同的序列)。如果是,返回 t r u e true true;否则,返回 f a l s e false false。 数据…...

GitLab指定用户分配合并权限

进入项目 -》 Project Settings Repository -》展开 Protected branches -》 添加要保护的分支,设置角色 管理用户角色权限 查看到不同用户的角色,一般设置Developer只有Merger Request权限,Maintainer还有Merge审批权限 GitLab 中的权限…...

五,[GXYCTF2019]Ping Ping Ping1

进入靶场,有提示 我们在url试着输入本地IP,返回了ping命令 既然要在url处传参,那就用postman,再输入ip127.0.0.1 & ls,试着列出目录内容 ok,好像是个脏话,它过滤了空格 试着穿越又看到了脏话&#xff0…...

基于STM32的智能无人机自主飞行与目标识别系统设计

目录 引言系统需求分析 2.1 功能需求 2.2 硬件需求 2.3 软件需求系统设计 3.1 总体架构 3.2 各模块设计系统实现 4.1 硬件实现 4.2 软件实现系统调试与优化总结与展望 1. 引言 随着无人机技术的快速发展,无人机在军事侦察、环境监测、物流配送等领域的应用逐渐增多…...

用了wordpress的电商网站/销售推广的方法都有哪些

单实例Singleton设计模式可能是被讨论和使用的最广泛的一个设计模式了,这可能也是面试中问得最多的一个设计模式了。这个设计模式主要目的是想在整个系统中只能出现一个类的实例。这样做当然是有必然的,比如你的软件的全局配置信息,或者是一个…...

横沥仿做网站/百度模拟点击软件判刑了

网页布局原理标签在网页中会显示成一个个的方块,先按照行的方式,把网页划分成多个行,再到行里面划分列,也就是在表示行的标签中再嵌套标签来表示列,标签的嵌套产生叠加效果。单列布局水平居中水平居中的页面布局中最为…...

做搞笑图片的网站/seo百度seo排名优化软件

canvas绘图,html5 k线图,股票行情图 canvas跟其他标签一样,也可以通过css来定义样式。但这里需要注意的是:canvas的默认宽高为300px * 150px,在css中为canvas定义宽高,实际上把宽高为300px * 150px的画布进行了拉伸&am…...

alexa全球网站排名分析/中铁建设集团有限公司

我们知道C中有复制构造函数的概念,C#其实也有复制构造函数的,但平时我们一般没有提到这个说法,而且基本上不这么用.C#中常用到的克隆函数.它们实现的功能基本类似,都是拷贝一些值.但复制构造函数是在调用构造函数实例化一个类时直接拷贝另外一个对象的值,而克隆函数是等你实例化…...

摄影网站建设任务书/青青河边草直播免费观看

1.距离顺序排列矩阵单元格 //给出 R 行 C 列的矩阵&#xff0c;其中的单元格的整数坐标为 (r, c)&#xff0c;满足 0 < r < R 且 0 < c < C。 // // 另外&#xff0c;我们在该矩阵中给出了一个坐标为 (r0, c0) 的单元格。 // // 返回矩阵中的所有单元格的坐标&am…...

wordpress登陆美化/seo查询

我是卢松松&#xff0c;点点上面的头像&#xff0c;欢迎关注我哦&#xff01; 2月9日&#xff0c;我们刚上班。很多公司也有开工发红包的习惯&#xff0c;虽然我们只是个小公司&#xff0c;但我们也发。昨天给到岗的同事每人发了800元红包&#xff0c;未到岗的500元。 我们定…...