mysql5.7配置主从

原理:
MySQL主从复制的工作原理如下:1. 主服务器产生Binlog日志当主服务器的数据库发生数据修改操作时,如INSERT、UPDATE、DELETE语句执行,主服务器会记录这些操作的日志信息到二进制日志文件中。2. 从服务器读取Binlog日志 从服务器会向主服务器发送请求,主服务器把自己产生的Binlog日志信息发送给从服务器。3. 从服务器应用Binlog日志从服务器接收到Binlog日志后,会按照日志顺序执行这些日志里记录的操作,使数据库的数据保持一致。4. IO线程和SQL线程主从复制在从服务器上有两个线程来完成同步工作:- IO线程:负责与主服务器通信,拉取二进制日志事件。- SQL线程:负责解析并执行从IO线程读取的二进制日志事件,使得slave端数据实时与master保持同步。5. relay log从IO线程读取到的日志记录会写入中继日志(relay log),然后由SQL线程读取并解析执行,实现数据库操作同步。6. 并发插入处理对于并发插入,采用自增步长策略。主从数据库的id生成取不同offset,防止主从id重复。7. SQL处理复杂的SQL语句如事务或触发器等,先记录日志,之后在slave端执行,保证数据一致性。总之,通过主服务器产生binlog日志,从服务器不断拉取并执行,就能实现主从数据实时同步的目的。两台数据库的数据将实时保持一致。

操作:

一、主从复制概述

MySQL主从复制是通过日志同步的方式,实现主库数据库修改同步到从库数据库。它可以用于读写分离、负载均衡、故障恢复等场景。主从复制基于MySQL的binlog日志功能实现。

二、环境准备

采用的MySQL版本为5.7,采用Linux操作系统。主从服务器硬件配置相同,软件环境均安装latest版本MySQL。

三、主库配置

  1. 配置my.cnf开启二进制日志log_bin;
  2. 设置唯一的server_id;
  3. 创建用户与权限用于主从同步;
server-id = 1             #id要唯一
log-bin = mysql-bin         #开启binlog日志
auto-increment-increment = 1   #在Ubuntu系统中MySQL5.5以后已经默认是1
auto-increment-offset = 1 

在这里插入图片描述

四、从库配置

  1. 配置my.cnf开启二进制日志;
  2. 设置唯一的server_id;
  3. 创建用户与权限用于主从同步;
server-id = 3             #这个设置3
log-bin = mysql-bin         #开启binlog日志
auto-increment-increment = 1   #这两个参数在Ubuntu系统中MySQL5.5以后都已经默认是1
auto-increment-offset = 1 

在这里插入图片描述

五、数据同步
主库锁表操作:
FLUSH TABLES WITH READ LOCK
5. 在主库使用mysqldump备份数据;
mysqldump -uroot -p123 --routines --single_transaction --master-data=2 --databases weibo > weibo.sql
6. 恢复备份到从库;
7.source /tmp/ weibo.sql;
8. 查看日志位点信息; SHOW MASTER STATUS;
在这里插入图片描述

  1. 从库配置变更点同步主库; SHOW SLAVE STATUS\G
    在这里插入图片描述

  2. 启动从库IO、SQL线程;
    在这里插入图片描述UNLOCK TABLES;

六、验证同步
在这里插入图片描述

查看Slave状态变量是否一致,在从库查看是否同步新增数据

七、处理常见问题

断线后自动同步、binlog错误处理、SQL线程报错等问题解决办法

八、总结

此次通过mysqldump+binlog日志方式实现了MySQL主从配置,支持读写分离和故障恢复。

以上内容系统性地介绍了MySQL主从配置的全过程,可作为主从实践参考。如有不足,还请指出,共同进步。

参考链接:
https://zahui.fan/posts/86a9c8f5/
https://www.xiadmin.com/39172
https://blog.csdn.net/demored/article/details/123351935
https://www.forasp.cn/html/3021.html
https://www.cnblogs.com/OceanWaves/p/17312432.html

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

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

相关文章

微信小程序开发学习笔记《18》uni-app框架-网络请求与轮播图

微信小程序开发学习笔记《18》uni-app框架-网络请求 博主正在学习微信小程序开发,希望记录自己学习过程同时与广大网友共同学习讨论。建议仔细阅读uni-app对应官方文档 一、下载网络请求包 这个包是以前黑马程序员老师写的一个包,跟着课程学习&#x…

Open3D(C++) 指定点数的体素滤波

目录 一、算法原理1、算法过程2、参考文献二、代码实现三、结果展示本文由CSDN点云侠原创,原文链接。如果你不是在点云侠的博客中看到该文章,那么此处便是不要脸的爬虫与GPT。 一、算法原理 1、算法过程 对于数据量较大的点云,在后期进行配准时会影响计算效率。而体素格网…

LCR 170. 交易逆序对的总数

解题思路: 归并排序,在归并的过程中不断计算逆序对的个数 count mid -i 1;的来源见下图,因为两个数组都是单调递增的,所以如果第一个数组的前一个元素大于第二个数组的对应元素,那么第一个数组的这一元素…

借助Aspose.SVG图像控件,在 C# 中将图像转换为 Base64

Base64 编码是一种二进制到文本的编码方案,可有效地将二进制数据转换为 ASCII 字符,为数据交换提供通用格式。在某些情况下,我们可能需要将JPG或PNG图像转换为 Base64 字符串数据。在这篇博文中,我们将学习如何在 C# 中将图像转换…

分享经典、现代和前沿软件工程课程

随着信息技术的发展,软件已经深入到人类社会生产和生活的各个方面。软件工程是将工程化的方法运用到软件的开发、运行和维护之中,以达到提高软件质量,降低开发成本的目的。软件工程已经成为当今最活跃、最热门的学科之一。 本次软件工程MOOC课…

现在如何才能开通微信公众号留言功能?

为什么公众号没有留言功能?2018年2月12日之后直到现在,新注册公众号的运营者会发现一个问题:无论是个人还是企业的公众号,在后台都找不到留言功能了。这对公众号来说绝对是一个极差的体验,少了一个这么重要的功能&…

万村乐数字乡村系统开源代码:革命性引领,助推乡村振兴新篇章

如今,国际社会普遍认为信息化、数字化已是重大且不可逆转的发展趋势,如何让广大农村地区充分分享到这个发展带来的红利,从而提升农村的经济活力,确保村民生活质量不断优化,已然成为我们需要认真研究并积极解决的重大议…

Window下编写的sh文件在Linux/Docker中无法使用

Window下编写的sh文件在Linux/Docker中无法使用 一、sh文件目的1.1 初始状态1.2 目的 二、过程与异常2.1 首先获取标准ubuntu20.04 - 正常2.2 启动ubuntu20.04容器 - 正常2.3 执行windows下写的preInstall文件 - 报错 三、检查和处理3.1 评估异常3.2 处理异常3.3 调整后运行测试…

uniapp+vue基于Android的图书馆借阅系统qb4y3-nodejs-php-pyton

uni-app框架:使用Vue.js开发跨平台应用的前端框架,编写一套代码,可编译到Android、小程序等平台。 框架支持:springboot/django/php/Ssm/flask/express均支持 前端开发:vue 语言:pythonjavanode.jsphp均支持 运行软件:idea/eclip…

2023天津公租房网上登记流程图,注册到信息填写

2023年天津市公共租赁住房网上登记流程图 小编为大家整理了天津市公共租赁住房网上登记流程,从登记到填写信息。 想要体验的朋友请看一下。 申请天津公共租赁住房时拒绝申报家庭情况会怎样? 天津市住房保障家庭在享受住房保障期间,如在应申…

智慧草莓基地:Java与SpringBoot的技术革新

✍✍计算机毕业编程指导师 ⭐⭐个人介绍:自己非常喜欢研究技术问题!专业做Java、Python、微信小程序、安卓、大数据、爬虫、Golang、大屏等实战项目。 ⛽⛽实战项目:有源码或者技术上的问题欢迎在评论区一起讨论交流! ⚡⚡ Java、…

xss.haozi:0x00

0x00没有什么过滤所以怎么写都没有关系有很多解 <script>alert(1)</script>

【Linux取经路】文件系统——inode与软硬链接

文章目录 一、前言二、认识硬件——磁盘2.1 磁盘的存储构成2.2 磁盘的逻辑抽象 三、操作系统对磁盘的使用3.1 再来理解创建文件3.2 再来理解删除文件3.3 再来理解目录 四、硬链接五、软链接六、结语 一、前言 在之前的【Linux取经路】文件系统之被打开的文件——文件描述符的引…

DevStack 基于 Ubuntu 部署 OpenStack

Devstack 简介 DevStack 是一系列可扩展的脚本&#xff0c;用于基于 git master 的最新版本快速调出完整的 OpenStack 环境。devstack 以交互方式用作开发环境和 OpenStack 项目大部分功能测试的基础。 devstack 透过执行 stack.sh 脚本&#xff0c;搭建 openstack 环境&…

Day31|贪心算法1

贪心的本质是选择每一阶段的局部最优&#xff0c;从而达到全局最优。 无固定套路&#xff0c;举不出反例&#xff0c;就可以试试贪心。 一般解题步骤&#xff1a; 1.将问题分解成若干子问题 2.找出适合的贪心策略 3.求解每一个子问题的最优解 4.将局部最优解堆叠成全局最…

【MySQL】深入解析 Buffer Pool 缓冲池

文章目录 1、前置知识1.1、Buffer Pool介绍1.2、后台线程1.2.1、Master Thread1.2.2、IO Thread1.2.3、Purge Thread1.2.4、Page Cleaner Thread 1.3、重做日志缓冲池 2、Buffer Pool 组成2.1、数据页2.2、索引页2.3、undo页2.4、插入缓冲2.5、锁空间2.6、数据字典2.6、自适应哈…

JavaScript之structuredClone现代深拷贝

在JavaScript中&#xff0c;实现深拷贝的方式有很多种&#xff0c;每种方式都有其优点和缺点。今天介绍一种原生JavaScript提供的structuredClone实现深拷贝。 下面列举一些常见的方式&#xff0c;以及它们的代码示例和优缺点&#xff1a; 1. 使用JSON.parse(JSON.stringify(…

代码随想录 二叉树第四周

目录 617.合并二叉树 700.二叉搜索树中的搜索 98.验证二叉搜索树 530.二叉搜索树的最小绝对差 501.二叉搜索树中的众树 236.二叉树的最近公共祖先 617.合并二叉树 617. 合并二叉树 简单 给你两棵二叉树&#xff1a; root1 和 root2 。 想象一下&#xff0c;当你将其…

第105讲:Mycat垂直分表实战:从规划到解决问题的完整指南

文章目录 1.垂直分表的背景2.垂直分表案例实战2.1.垂直分表规划2.2.配置Mycat实现垂直分表2.3.重启Mycat2.4.在Mycat命令行中导入数据结构2.5.查看由Mycat分表后每个分片上存储的表2.6.Mycat垂直分表后可能遇到的问题2.7.垂直分表完成 1.垂直分表的背景 我们的商城系统数据库&…

javaWebssh水利综合信息管理系统myeclipse开发mysql数据库MVC模式java编程计算机网页设计

一、源码特点 java ssh水利综合信息管理系统是一套完善的web设计系统&#xff08;系统采用ssh框架进行设计开发&#xff09;&#xff0c;对理解JSP java编程开发语言有帮助&#xff0c;系统具有完整的源代码和数据库&#xff0c;系统主要采用B/S模式开发。开发环境为TOMCA…