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

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.lryc.cn/news/147315.html

相关文章:

  • Threadlocal在项目中的应用
  • 个性化定制你的AI助手,AI指令提示词专家
  • mongodb聚合排序的一个巨坑
  • 无涯教程-分类算法 - 随机森林
  • c#常见的排序算法
  • Redis 持久化和发布订阅
  • k8s使用ECK(2.4)形式部署elasticsearch+kibana-http协议
  • [maven]关于pom文件中的<relativePath>标签
  • 11. 网络模型保存与读取
  • 新SDK平台下载开源全志V853的SDK
  • 多图详解VSCode搭建Java开发环境
  • 基于JavaWeb和mysql实现网上书城前后端管理系统(源码+数据库+开题报告+论文+答辩技巧+项目功能文档说明+项目运行指导)
  • Swift创建单例
  • 问道管理:市盈率怎么计算?
  • Ansible File模块,Ansible File模块详解,文件管理的自动化利器
  • 记录http与mqtt的区别
  • 导入excel数据给前端Echarts实现中国地图-类似热力图可视化
  • 【MySQL系列】MySQL复合查询的学习 _ 多表查询 | 自连接 | 子查询 | 合并查询
  • 微信小程序使用本地图片在真机预览不显示的问题解决
  • Texlive2023与Texstudio2023卸载与安装(详细全程)
  • 塞浦路斯公司注册 塞浦路斯公司开户 塞浦路斯公司年审
  • XSS盲打练习(简单认识反射型、存储型XSS和cookie欺骗)
  • Shell脚本:基础知识和使用指南
  • Resource Hacker下载
  • Kubernetes入门 十、HPA 自动扩/缩容
  • Django报错:SystemCheckError: System check identified some issues解决办法
  • JavaScript设计模式(一)——构造器模式、原型模式、类模式
  • python 读文件,跳过有问题的那行
  • Spring Boot Actuator的Env端点存在本地文件包含(LFI)漏洞CVE-2020-5421
  • Leetcode 最后一个单词的长度