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

Lnmp架构之mysql数据库实战1

1、mysql数据库编译

编译成功

2、mysql数据库初始化

配置数据目录

全局文件修改内容

生成初始化密码并进行初始化设定

3、mysql主从复制

什么是mysql的主从复制?

MySQL的主从复制是一种常见的数据库复制技术,用于将一个数据库服务器(称为主服务器)上的数据同步到另一个或多个数据库服务器(称为从服务器)上。

在主从复制中,主服务器负责处理所有的写入操作(INSERT、UPDATE、DELETE等),同时将这些写入操作记录在二进制日志(binary log)中。从服务器通过连接到主服务器并从二进制日志获取数据变更记录,然后将这些操作应用到自己的数据库中。

mysql复制的原理

1. 主库(Master服务器)记录二进制日志(Binary Log):主库负责处理所有的写操作(INSERT、UPDATE、DELETE等),并将这些操作记录在二进制日志中。二进制日志包含了数据变更的详细信息,以便从库能够获取到。

2. 从库(Slave服务器)连接主库:从库通过配置主库的IP地址和认证信息来连接主库。

3. 从库生成I/O线程(I/O Thread):从库启动时,生成一个I/O线程。I/O线程负责连接到主库,并监听主库上的二进制日志事件。它会一直读取主库的二进制日志,将数据写入从库的中继日志(Relay Log)中。

4. 主库接收从库连接请求:主库收到从库的连接请求后,会验证从库的身份,并将需要复制的二进制日志发送给从库的I/O线程。

5. I/O线程将事件写入中继日志:I/O线程将从主库获取到的二进制日志事件写入从库的中继日志中。中继日志是从库上的一系列二进制日志文件,它保存了从主库同步过来的数据变更事件。

6. 从库生成SQL线程(SQL Thread):同时,从库还会生成一个SQL线程。SQL线程负责读取中继日志中的二进制日志事件,并在从库上执行这些事件。它会将事件转换为对应的SQL语句,然后逐条执行这些SQL语句,将数据变更应用到从库的数据库中。

7. SQL线程执行中继日志中的事件:SQL线程会读取中继日志中的二进制日志事件,并逐条解析执行这些事件。它将事件转换为相应的SQL语句,并在从库上执行这些SQL语句,将数据变更应用到从库的数据库中。

8. 从库周期性地重复上述步骤:从库会周期性地重复执行上述步骤,以保持与主库的同步。I/O线程会持续监听主库的二进制日志事件,将其写入中继日志;SQL线程会读取中继日志中的事件并执行。通过不断重复这个过程,从库能够保持与主库的数据一致性

配置master服务器

配置slave服务器

在server2上(已安装设定好mysql服务)

测试:

在master(主服务器)上

在server2(从服务器)上实现同步

当master上有数据时的同步方法

将server1和server2上的数据文件复制到server3上

在server3上

在server1 master 上

注意:生产环境中备份时需要锁表,保证备份前后的数据一致 mysql> FLUSH TABLES WITH READ LOCK;

备份后再解锁 mysql> UNLOCK TABLES;

注意:mysqldump命令备份的数据文件,在还原时先DROP TABLE,需要合并数据时需要删除此语句

在server3上

测试:

只有读的操作远远多于写的操作时才会用一主多从,数据库的外部需要接入高可用负载均衡;

缺陷:

master 端Binlog是直接考给slave的是异步操作

异步操作:master 端更新完了之后直接发给slave,master不需要知道slave端是否接收到,这样就会导致比如master端到slave端网络出现问题;意思就是master可以成功运作,也把日志发给slave 但是由于网络的问题,这个数据没有真正发送给slave端,那么这时候master down掉之后,slave端开始接管的时候 数据就会丢失。

在IO中有个内置的半同步模式

在IO中,有个内置的半gtid模式

切到gtid模式

master配置

slave配置(所有节点配置相同)

重新配置+重新启动

在gtid模式下,当master有问题的时候,就会挑离它id最近的slave作为master,供给下面的slave,以此类推。

通过设置gtid 大大降低复杂度。通过全局的方式,不用关心它的日志文件和binlog号,gtid 只关心它的下一跳是谁就行,就是gtid next。

master端添加数据

slave即可查询到gtid标识号

server3也可以

半同步模式(必须要走gtid)

解决IO

给master端安装半同步模块

slave端也安装半同步模块并激活重启IO线程

将半同步参数写入配置文件,确保重启后依然生效(master和salve都由设置)

测试

当停掉所有的slave端的IO线程:

此时,再在master端插入数据

想要数据保持高度一致性,要将等待时间设定成无穷大,表示master只要没收到slave端返回信息则就会一直等待,不会输出错误数据。

当所有的slave节点再次启动IO线程,mysql会自动切回半同步模式

mysql> START SLAVE IO_THREAD;

Query OK, 0 rows affected (0.00 sec)

并行复制(提高效率)

默认slave节点sql单线程回放,会造成数据同步延时较高

slave节点添加以下参数解决,不需要在master端设定,因为sql线程只存在于slave端

注意:所有的slave端都要添加并行参数

延迟复制

如果在master端误操作,可以在slave端进行数据恢复,只需要停掉sql线程;

延迟只是延迟了sql ,IO已经复制过来了 ,数据已经在中继日志里保存起来了,只不过sql没有进行回放。

相关文章:

Lnmp架构之mysql数据库实战1

1、mysql数据库编译 编译成功 2、mysql数据库初始化 配置数据目录 全局文件修改内容 生成初始化密码并进行初始化设定 3、mysql主从复制 什么是mysql的主从复制? MySQL的主从复制是一种常见的数据库复制技术,用于将一个数据库服务器(称为主…...

ChatGLM 大模型炼丹手册-理论篇

序言一)大还丹的崛起 在修真界,人们一直渴望拥有一种神奇的「万能型丹药」,可包治百病。 但遗憾的是,在很长的一段时间里,炼丹师们只能对症炼药。每一枚丹药,都是特效药,专治一种病。这样就导致,每遇到一个新的问题,都需要针对性的炼制,炼丹师们苦不堪言,修真者们吐…...

Spring Boot集成Redis实现数据缓存

🌿欢迎来到衍生星球的CSDN博文🌿 🍁本文主要学习Spring Boot集成Redis实现数据缓存 🍁 🌱我是衍生星球,一个从事集成开发的打工人🌱 ⭐️喜欢的朋友可以关注一下🫰🫰&…...

CentOS 7 安装Libevent

CentOS 7 安装Libevent 1.下载安装包 新版本是libevent-2.1.12-stable.tar.gz。(如果你的系统已经安装了libevent,可以不用安装) 官网:http://www.monkey.org/~provos/libevent/ 2.创建目录 # mkdir libevent-stable 3.解压 …...

线性代数的本质——几何角度理解

B站网课来自 3Blue1Brown的翻译版,看完醍醐灌顶,强烈推荐: 线性代数的本质 本课程从几何的角度翻译了线代中各种核心的概念及性质,对做题和练习效果有实质性的提高,下面博主来总结一下自己的理解 1.向量的本质 在物…...

SSH key 运作方式

1、本地创建SSH key pairs 2、把public key上传到网站服务器(如GitHub 3、当使用ssh方式连接时 本地SSH client向远端请求ssh连接远端发来random data要求加密本地ssh client用private key加密,把加密的data发送过去(不发送private key远端接…...

【基于MBD开发模式的matlab持续集成(一)】

基于MBD开发模式的matlab持续集成 引言 或许是感受到行业内卷的愈加激烈,在传统制造和高新技术相结合的新能源领域对软件工程开发的要求也愈加提高,尤其在互联网已经大行 其道的敏捷开发,便顺其自然的被新能源的老板们所看重。 概述 本文…...

Linux学习记录——이십팔 网络基础(1)

文章目录 1、了解2、网络协议栈3、TCP/IP模型4、网络传输1、同一局域网(子网)2、局域网通信原理3、跨一个路由器的两个子网4、其它 详细的网络发展历史就不写了 1、了解 为什么会出现网络?一开始多个计算机之间想要共享文件,就得…...

CSS动效合集之实现气泡发散动画

前言 👏CSS动效合集之实现气泡发散动画,速速来Get吧~ 🥇文末分享源代码。记得点赞关注收藏! 1.实现效果 2.实现步骤 定义一个数组bubbles,用来存储气泡列表的基本新,w表示宽高,x表示绝对定位…...

六、串口通信

六、串口通信 串口接口介绍使用串口向电脑发送数据电脑发送数据控制LED灯 串口接口介绍 SBUF是串口数据缓存器,物理上是两个独立的寄存器,但占用相同的地址。写操作时,写入的是发送寄存器;读操作时,读出的是接收寄存器…...

如何将 JavaScript Excel XLSX 查看器添加到Web应用程序

在 JavaScript 中创建 Excel 查看器可能是一项艰巨的任务,但使用 SpreadJS JavaScript 电子表格,创建过程要简单得多。在本教程博客中,我们将向您展示如何使用 SpreadJS 的强大功能来创建一个查看器,该查看器允许您在 Web 浏览器中…...

网安周报|CISA发布增强开源安全性的计划

1、CISA发布增强开源安全性的计划 美国一家领先的安全机构发布了一项期待已久的计划,详细说明了它将如何增强联邦政府和整个生态系统的开源安全性。美国网络安全和基础设施安全局(CISA)开源软件安全路线图在安全开源峰会上发布。据估计&#…...

使用 Docker 安装 Elasticsearch (本地环境 M1 Mac)

Elasticsearchkibana下载安装 docker pull elasticsearch:7.16.2docker run --name es -d -e ES_JAVA_OPTS“-Xms512m -Xmx512m” -e “discovery.typesingle-node” -p 9200:9200 -p 9300:9300 elasticsearch:7.16.2docker pull kibana:7.16.2docker run --name kibana -e EL…...

Visual Studio中MD与MT的区别及运行库类型选择

MT与MD的区别 /MT:是multithread-static version,是多线程静态版本的意思,项目会使用运行时库的多线程静态版本,编译器会将LIBCMT.lib放入.obj文件中,以便链接器使用LIBCMT.lib解析外部符号;/MTd&#xff…...

Vue3函数式编程

文章目录 前言一、三种编程风格1.template2.jsx/tsx3.函数式编写风格 二、函数式编程1.使用场景2.参数3.例子3.render渲染函数 总结 前言 本文主要记录vue3中的函数式编程以及其他编程风格的简介 一、三种编程风格 1.template Vue 使用一种基于 HTML 的模板语法,…...

【逗老师的无线电】艾德克斯TTL串口转网口

最近手搓了一个可以用于艾德克斯ITECH电源或者电子负载的TTL串口转网口的模块,用上之后,上位机软件就可以配置以太网IP连接设备啦。就像这样。 一、ITECH TTL接口定义 二、整体逻辑 嗯,就这么简单。IT9000控制软件的Ethernet功能就是直接S…...

如何修改jupyter notebook默认打开路径

1、用jupyter notebook在其他位置打开自己的ipython项目: jupyter notebook是一个很好用的工具,可以保存运行结果,还可以给项目添加很多可视化操作与介绍文字。安装anaconda后,jupyter notebook就会自动安装,点开它会…...

【leetcode】数组排序

【leetcode】数组排序 task03 主要了解了数组中常见的排序方法: 1.常见数组排序方法 冒泡排序(Bubble Sort): 冒泡排序是一种简单的排序算法,它多次遍历数组,比较相邻的元素并交换它们,直到整…...

【C刷题训练营】第四讲(打好基础很重要)

前言: 大家好,这是c语言刷题训练营的第四讲,打好基础便于对c语言语法与算法思维的提高,感谢你的来访与支持! 💥🎈个人主页:​​​​​​Dream_Chaser~ 🎈💥 ✨✨刷题专栏…...

MySQL 某个字段存储不了内容

1. 原因 某个字段存储的内容过大 2. 解决 修改max_allowed_packet参数 max_allowed_packet参数是指mysql服务器端在一次传送数据包的过程当中最大允许的数据包大小。如果超过了设置的最大长度,则会数据库保持数据失败。 2.1 查询参数 show variables like %max…...

Keyviz完全指南:5分钟掌握实时键鼠可视化技巧

Keyviz完全指南:5分钟掌握实时键鼠可视化技巧 【免费下载链接】keyviz Keyviz is a free and open-source tool to visualize your keystrokes ⌨️ and 🖱️ mouse actions in real-time. 项目地址: https://gitcode.com/gh_mirrors/ke/keyviz 你…...

构建个人知识管理系统:基于技能树与间隔重复的学习框架

1. 项目概述:构建个人专属的“人类技能树” 最近在折腾一个挺有意思的项目,我把它叫做“人类技能树”。这名字听起来有点科幻,但内核其实很朴素:我们每个人从小到大,从学校到职场,都在不断地学习各种技能&a…...

京东自动评价工具:3分钟解决购物评价难题的智能助手

京东自动评价工具:3分钟解决购物评价难题的智能助手 【免费下载链接】jd_AutoComment 自动评价,仅供交流学习之用 项目地址: https://gitcode.com/gh_mirrors/jd/jd_AutoComment 还在为购物后的评价烦恼吗?每次收到京东的"待评价"提醒&…...

从数据中心视角聊token

“我爱你”被AI拆解成了3个tokens,“I love U”也同样被AI拆解成了3个tokens,AI将人类的语言拆解到可被数据分析的最小单位,叫做token,中文是词元,AI通过数据模型的分析,又将无数的token组成了答复反馈给用…...

中国半导体产业崛起:资本驱动下的存储器攻坚与全产业链布局

1. 行业格局的十字路口:当西方整合遇上东方崛起最近几年,半导体行业的头条新闻几乎被一系列重磅并购案所占据:恩智浦收购飞思卡尔、安华高并购博通、英特尔鲸吞阿尔特拉。这些动辄数百亿美元的巨无霸交易,背后传递出一个清晰的信号…...

Anthropic新模型Mythos号称擅查漏洞,扫描curl代码却仅确认1个低危问题

Mythos高调亮相,扫描结果却令人意外 近期,Anthropic推出的AI安全分析模型Mythos引发广泛关注,该公司宣称其在发现源代码安全漏洞方面表现出色,甚至因此暂缓公开发布。然而,当Mythos扫描全球最广泛使用的开源命令行HTTP…...

在Node.js后端服务中集成Taotoken调用多模型API实战

🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 在Node.js后端服务中集成Taotoken调用多模型API实战 构建需要AI能力的Web服务时,后端开发者常面临模型选型、API接入复…...

从 Token 消耗到 AI 资产:企业如何把一次调用沉淀成模板、流程、知识库和制度

关键词:Token 管理、AI 资产、模板库、流程化、知识库、制度化、投入产出比 开篇:企业真正要管的不是 Token,而是 Token 之后留下了什么 很多企业开始使用 AI 以后,第一反应是看成本:这个月用了多少 Token,哪个部门调用最多,哪个模型最贵,哪些场景消耗最高。 这当然重…...

FanControl中文设置终极指南:3个简单步骤让Windows风扇控制说中文

FanControl中文设置终极指南:3个简单步骤让Windows风扇控制说中文 【免费下载链接】FanControl.Releases This is the release repository for Fan Control, a highly customizable fan controlling software for Windows. 项目地址: https://gitcode.com/GitHub_…...

高海拔环境下的硬件设计挑战与GPS定位故障分析

1. 从数据记录到真实体验:高海拔环境下的技术挑战作为一名电子工程师,我习惯了在实验室里与精密的仪器和数据打交道,一切都在可控范围内。但当你带着自己设计的设备,踏上非洲之巅乞力马扎罗的征途时,现实会给你上一堂生…...