lnmp架构-mysql1

1.MySQL数据库编译

 

 

 

 make完之后是这样的

 

 mysql 初始化

 

 

 

 

 

 

 所有这种默认不在系统环境中的路径里 就这样加

这样就可以直接调用 不用输入路径调用

2.初始化

 

 

 重置密码

 

 

3.mysql主从复制

配置master

 

 

 

配置slave

当master 端中还没有插入数据时

在server2 上配slave

 

 

 

 

 

 

 

 

 

 

 此时master 还没进行任何增删改查动作

在 server2上

测试

 在master 上

 

在server2 上会实现同步

当master 端有数据的时候 怎么同步呢

在server1 上

 在server2 上

 在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模式

master配置

 slave配置

在server2上

首先停止slave

重新配置+重新启动

 其他节点以此内推

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

异步方式  得知道接管的那个master 上的日志文件和那个号 这样很复杂   异步的 虽然很快 但是 无法保证无损()

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

半同步模式

首先解决IO

给master 端安装半同步模块

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

 给slave端安装slave的半同步模块

 

 需要重启IO线程,slave端的半同步才生效

 

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

 测试

 当停止所有slave节点的IO线程:

 在master 端插入数据

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

mysql> START SLAVE IO_THREAD;
Query OK, 0 rows affected (0.00 sec)

解决sql 线程的问题

并行复制 提高效率
默认slave节点sql单线程回放,会造成数据同步延时较高
slave节点添加以下参数

在salve端 不需要在master 端  因为sql 线程在 slave端

 

延迟复制 如果在master端误操作 可以在slave端进行数据恢复
只需要停掉sql 线程
延迟只是延迟了sql  IO已经复制过来了  数据已经在中继日志里 已经保存起来了 只不过sql已经没有回放

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/60403.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【混合时变参数系统参数估计算法】使用范数总和正则化和期望最大化的混合时变参数系统参数估计算法(Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…

微软 Turing Bletchley v3视觉语言模型更新:必应搜索图片更精准

据微软新闻稿透露,在推出第三代Turing Bletchley视觉语言模型后,微软计划逐步将其整合到Bing等相关产品中,以提供更出色的图像搜索体验。这款模型最初于2021年11月面世,并在2022年秋季开始邀请用户测试。 凭借用户的反馈和建议&am…

vue项目使用svg实现一个物体沿着线条实时运动;svg图像放大缩小;svg中的文字居中显示

效果如上 html部分 <svg width"500px" height"500px" viewBox"0 0 400 400"><!-- 绘制连线 --><template v-for"(point, index) in points"><line :x1"point.x" :y1"point.y" :x2"in…

生物笔记——暑期学习笔记(三)

生物笔记——暑期学习笔记&#xff08;三&#xff09; 文章目录 前言一、R篇1. 数据筛选2. 字符串处理3. 练习 二、生信篇1. blast 基因家族鉴定2. hmm鉴定3. 理化性质与亚细胞定位4. 基因重复类型分析5. 家族成员染色体位置分析6. 基因组共线性分析7. 多序列比对&#xff0c;构…

【seaweedfs】3、f4: Facebook’s Warm BLOB Storage System 分布式对象存储的冷热数据

论文地址 Facebook的照片、视频和其他需要可靠存储和快速访问的二进制大型对象(BLOB)的语料库非常庞大&#xff0c;而且还在继续增长。随着BLOB占用空间的增加&#xff0c;将它们存储在我们传统的存储系统-- Haystack 中变得越来越低效。为了提高我们的存储效率(以Blob的有效复…

node18 vue2启动报错 error:0308010C:digital envelope routines::unsupported

出现原因 貌似是因为是因为 node 17版本开始发布的OpenSSL3.0, 而OpenSSL3.0对允许算法和密钥大小增加了严格的限制&#xff0c;可能会对生态系统造成一些影响。 解决方法 第一种方法降低node版本 降低到17以下即可 &#xff0c;如项目不能降低版本 看后面的解决方式 第二…

axios 和fetch的取舍,以及比较

废话不多说&#xff0c;直接直捣黄龙&#xff1a; 区别 相同点 都是一种基于promise的异步解决方案。都可以解决回调地狱问题 不同点 axios是一个封装好的库&#xff0c;需要npm进行安装&#xff0c;fetch是es6新增的api 语法&#xff1a; fetch(url, { method: GET, // o…

问题杂谈(三十七)远程调试linux中的Tomcat

前言 之前调试过Docker里面的java程序&#xff0c;但还没试过直接调试tomcat里面的java程序&#xff0c;今儿个来试试 步骤 Tomcat 修改catlina脚本&#xff1a;vi catlina.sh&#xff08;bin目录下&#xff09;找到下面这句&#xff0c;将"localhost:8000"改为”…

【单片机】有人 WH-LTE-7S1 4G cat1 模块,HTTPD模式,字符串传输,文件传输。GPRS模块连接服务器教程。

文章目录 1、配置模块为HTTPD模式 POST字符串传输2、配置模块为HTTPD模式 GET请求3、 上一篇文章&#xff1a;https://qq742971636.blog.csdn.net/article/details/132571592 在上一篇文章里&#xff0c;已经通过TCP 长链接进行服务器与Cat1 GPRS 模块进行双向通信。已经能够满…

程序与进程

一、程序是怎么被执行的 1.在程序中&#xff0c;由引导代码去调用程序中得main函数&#xff0c;而这个过程由链接器完成&#xff0c;链接器将引导代码链接到我们的应用程序构成可执行文件。 2.程序运行需要通过操作系统的加载器来实现&#xff0c;加载器是操作系统中的程序&a…

C++ 构造函数、析构函数调用虚函数

C虚函数是通过虚表实现的&#xff0c;虚函数的地址记录在虚表中&#xff0c;只对象完成构造完成后&#xff0c;虚函数的地址才最终确定。 构造函数中调用虚函数 基类先于派生类构造&#xff0c;所以构造时没法调用到派生类的虚函数&#xff0c;也就是说只能调用到自己这一层&…

Java学数据结构(4)——散列表Hash table 散列函数 哈希冲突

目录 引出散列表Hash table关键字Key和散列函数(hash function)散列函数解决collision哈希冲突&#xff08;碰撞&#xff09;分离链接法(separate chaining)探测散列表(probing hash table)双散列(double hashing) Java标准库中的散列表总结 引出 1.散列表&#xff0c;key&…

力扣88.合并两个有序数组

88. 合并两个有序数组 提示 简单 2.1K 相关企业 给你两个按 非递减顺序 排列的整数数组 nums1 和 nums2&#xff0c;另有两个整数 m 和 n &#xff0c;分别表示 nums1 和 nums2 中的元素数目。 请你 合并 nums2 到 nums1 中&#xff0c;使合并后的数组同样按 非递减顺序 …

document.all 的详解

all 方法最初是由 IE 浏览器拥有的&#xff0c;并不属于 W3C 规范范畴&#xff0c;他返回调用 all 方法的 HTML 标记自身内的所有子孙元素的 HTML 标记集合 。 all 方法的详细说明请参见 MSDN&#xff1a;http://msdn.microsoft.com/en-us/library/ms537434(VS.85).aspx。 通…

java8 IntStream.range

简介 IntStream.range是Java 8中的一个方法&#xff0c;它是java.util.stream.IntStream类中的静态方法。这个方法用于生成一个顺序排列的整数流&#xff0c;包含起始值但不包含结束值。可以使用以下代码调用IntStream.range方法&#xff1a; IntStream.range(int startInclu…

关于JavaScript中Set的操作和应用

目录 JavaScript中Set的操作和应用Set的基本操作创建Set添加元素删除元素判断元素是否存在获取Set的长度清空Set Set的遍历for...of循环forEach方法转换成数组后遍历使用Set的entries方法遍历 Set的应用数组去重判断两个数组是否有重复元素实现并集、交集和差集 总结 JavaScrip…

云和恩墨面试(部分)

一面 软件架构设计方案应该包含哪些内容&#xff0c;哪些维度 二面 架构师如何保证软件产品质量线程屏障(或者说线程栅栏)是什么&#xff0c;为什么要使用线程屏障事务传播⾏为为NESTED时&#xff0c;当内部事务发生异常时&#xff0c;外部事务会回滚吗&#xff1f;newBing:…

ThinkPHP 集成 jwt 技术 token 验证

ThinkPHP 集成 jwt 技术 token 验证 一、思路流程二、安装 firebase/php-jwt三、封装token类四、创建中间件&#xff0c;检验Token校验时效性五、配置路由中间件六、写几个测试方法&#xff0c;通过postman去验证 一、思路流程 客户端使用用户名和密码请求登录服务端收到请求&…

论文阅读 FCOS: Fully Convolutional One-Stage Object Detection

文章目录 FCOS: Fully Convolutional One-Stage Object DetectionAbstract1. Introduction2. Related Work3. Our Approach3.1. Fully Convolutional One-Stage Object Detector3.2. Multi-level Prediction with FPN for FCOS3.3. Center-ness for FCOS 4. Experiments4.1. Ab…

字符串匹配的Rabin–Karp算法

leetcode-28 实现strStr() 更熟悉的字符串匹配算法可能是KMP算法, 但在Golang中,使用的是Rabin–Karp算法 一般中文译作 拉宾-卡普算法,由迈克尔拉宾与理查德卡普于1987年提出 “ 要在一段文本中找出单个模式串的一个匹配&#xff0c;此算法具有线性时间的平均复杂度&#xff0…