MySQL 主从同步(读写分离)

news2024/12/23 17:59:13

Spring Cloud 微服务系列文章,点击上方合集↑

1. 开头

在生产环境中,为了应对大量的读写请求并减轻数据库的负载压力,常常会使用MySQL主从同步来实现读写分离的架构。通过这种架构,主数据库负责处理写操作,而从数据库则专注于处理读操作,达到了在提高性能的同时保证了数据的高可用性。

主从同步的实现原理主要依赖于MySQL的二进制日志binlog功能。当在主数据库上进行写操作时,MySQL会将这些操作记录下来并保存为二进制文件。从数据库会持续监测主数据库上的二进制日志,实时读取并执行这些日志中的操作,从而保持与主数据库的数据一致性。

2. 主数据库(master)

2.1 my.cnf配置文件

[mysqld]
server-id=1
log-bin=mysql-bin
binlog-ignore-db=information_schema
binlog-ignore-db=mysql
binlog-ignore-db=performance_schema
binlog-ignore-db=sys

character_set_server=utf8mb4
  • server-id 配置数据库的id,主数据库配置为1
  • log-bin=mysql-bin开启二进制记录
  • binlog-ignore-db 配置不需要同步的数据库

2.2 查看binlog信息

SHOW MASTER STATUS命令用于查看MySQL主服务器当前正在使用的二进制日志文件的文件名和偏移量信息。

mysql -uroot -p

show master status
  • binlog文件名File mysql-bin.000003 和偏移量Position 188记一下,后面slave需要用。

3. 从数据库(slave)

3.1 my.cnf配置文件

[mysqld]
server-id=2
read_only=1
  • server-id 配置数据库的id,从数据库配置为2
  • read_only=1 只读模式

3.2 配置同步参数

进入mysql命令控制台

mysql -uroot -p
CHANGE MASTER TO MASTER_HOST='192.168.31.163',\
MASTER_PORT=3312,\
MASTER_USER='root',\
MASTER_PASSWORD='123456',\
MASTER_LOG_FILE='mysql-bin.000003',\
MASTER_LOG_POS=188

3.3 开启主从同步

在从服务器上执行以下命令,启动主从同步:

START SLAVE;

可以使用以下命令检查主从复制的状态:

SHOW SLAVE STATUS\G
  • 查看输出中Slave_IO_RunningSlave_SQL_Running的值。如果这些状态为yes,则表示主从同步已成功建立。

用Navicat等数据库工具去测试一下,master更新数据立马被同步到slave。

4. 结尾

本文我们学习了如何配置和管理MySQL主从同步,实现了在生产环境中的读写分离和高可用性。实际情况下:写数据库只有一个,读数据库会有多个,是一主多从的架构。


Spring Cloud 微服务系列 完整的代码在仓库的sourcecode/spring-cloud-demo目录下。

gitee(推荐):https://gitee.com/cunzaizhe/xiaohuge-blog

github:https://github.com/tigerleeli/xiaohuge-blog

关注微信公众号:“小虎哥的技术博客”,让我们一起成为更优秀的程序员❤️!

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

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

相关文章

知识增强语言模型提示 零样本知识图谱问答10.8

知识增强语言模型提示 零样本知识图谱问答 摘要介绍相关工作方法零样本QA的LM提示知识增强的LM提示与知识问题相关的知识检索 摘要 大型语言模型(LLM)能够执行 零样本closed-book问答任务 ,依靠其在预训练期间存储在参数中的内部知识。然而&…

el-table 设置最大高度且能刚好撑满

max-height"calc(90vh - 120px)"90vh视口高度的90%自行调整即可

【NLTK系列02】NLTK库应用:使用 NLTK 进行情绪分析

使用 NLTK 进行情绪分析 上篇:【NLTK系列】:nltk库介绍(01)_无水先生的博客-CSDN博客 一、说明 上篇《NLTK库介绍》介绍了NLTK的基本用法,本篇介绍NLTK的一个具体应用:“使用 NLTK 进行情绪分析”&#xf…

C++QT-day2

#include <bits/stdc.h>/*自己封装一个矩形类(Rect)&#xff0c;拥有私有属性:宽度(width)、高度(height)&#xff0c;定义公有成员函数:初始化函数:void init(int w, int h)更改宽度的函数:set_w(int w)更改高度的函数:set_h(int h)输出该矩形的周长和面积函数:void sho…

安卓端App页面狂刷问题记录

一、场景 App基于webview混合开发&#xff0c;业务主要为前端h5实现&#xff0c;其中有一个功能为消息中心&#xff0c;当从通知栏点击消息跳转到指定页面时&#xff0c;前端会不停地刷新页面&#xff0c;一遍又一遍地重复同一批请求。 二、问题分析 1、刚开始怀疑是否前端里…

Mac电脑专业的任务管理软件 Omnifocus Pro 3中文 for mac

OmniFocus Pro是一款针对Mac平台的高效任务管理软件&#xff0c;它可以帮助用户处理日常事务、安排计划任务&#xff0c;同时提高用户的工作效率。该软件具有简单、直观、易于使用的特点&#xff0c;与其他电子任务清单工具相比&#xff0c;OmniFocus Pro更加专注于细节和定制化…

【postgresql】

看到group by 1&#xff0c;2 和 order by 1&#xff0c; 2。看不懂&#xff0c;google&#xff0c;搜到了Stack Overflow 上有回答 What does SQL clause “GROUP BY 1” mean? 大概意思就是&#xff0c;group by&#xff0c; order by 后面跟数字&#xff0c;指的是 selec…

漏刻有时数据可视化大屏(16)数据指标KPI和柱图折线图混排

CSS样式表 /*面板*/ .pannel {width: 100%;margin-top: 30px;clear: both; }.item_l {float: left;width: 20%; /*3格60%*/margin: 0; }.item_r {float: left;width: 10%; /*4格40%*/margin: 0; }.item_child {float: left;width: 50%; }.item_child_b {float: left;width: 10…

OLED透明拼接屏,在包头市的市场表现与应用领域

包头&#xff0c;作为内蒙古自治区的重要城市之一&#xff0c;以其丰富的煤炭资源和快速发展的经济而闻名于世。 包头拥有着独特的地理位置和良好的交通条件&#xff0c;吸引了大量的投资和企业进驻&#xff0c;推动了城市的不断发展和现代化建设。 随着科技的不断进步&#…

深度学习基础知识 使用torchsummary、netron、tensorboardX查看模参数结构

深度学习基础知识 使用torchsummary、netron、tensorboardX查看模参数结构 1、直接打印网络参数结构2、采用torchsummary检测、查看模型参数结构3、采用netron检测、查看模型参数结构3、使用tensorboardX 1、直接打印网络参数结构 import torch.nn as nn from torchsummary im…

Linux入门攻坚——2、基础命令学习

Linux就是命令集的操作系统&#xff0c;精通Linux&#xff0c;就要先精通各种命令。 date &#xff1a; date [OPTION] ... [FORMAT] &#xff1a; 显示日期时间&#xff08;系统时钟&#xff09; FORMAT&#xff1a;格式符号 %D&#xff1a;月/日/年…

优思学院|零库存:丰田精益管理的成功之道(CLMP)

在如今竞争激烈的商业世界中&#xff0c;企业需要不断寻求新的方法来提高效率、降低成本&#xff0c;并确保产品的高质量。其中一种成功的策略是实施零库存管理&#xff0c;而日本汽车制造巨头丰田公司就以其独特的零库存策略而闻名全球。优思学院在本文中将会深入探讨什么是零…

Android Studio: unrecognized Attribute name MODULE

错误完整代码&#xff1a; &#xfffd;&#xfffd;&#xfffd;&#xfffd;&#xfffd;&#xfffd; (1.8.0_291) &#xfffd;г&#xfffd;&#xfffd;&#xfffd;&#xfffd;쳣&#xfffd;&#xfffd;&#xfffd;&#xfffd;&#xfffd;&#xfffd;&#xff…

C++对象模型(3)-- 类对象所占用的空间

类对象所占用的空间可以用sizeof()函数获取&#xff0c;在C对象模型中&#xff0c;类对象所占用的空间规则如下&#xff1a; (1) 空类占1字节&#xff0c;以使该类对象在内存得以配置一个地址。 (2) 对象所占用的空间由3个因素决定&#xff1a;非静态成员变量、虚函数、字节填…

图形学 -- Rasterization栅格化

参考视频&#xff1a;Lecture 05 Rasterization 1 (Triangles)_哔哩哔哩_bilibili 视锥&#xff1a; 定义一个垂直角度&#xff0c;定义宽高比 投到[-1,1]^3之后要呈现到屏幕上 屏幕 屏幕&#xff08;一个二位数组&#xff09; 屏幕是个典型的光栅成像设备 定义屏幕空间 映…

【每日一练】勾股定理困难版

目录 题目官方给的解题思路源代码附最大公因数辗转相除法更相减损术 所有因数参考文献 题目 给定斜边z的值&#xff0c;求所有直角边x和y的组合数&#xff08;x、y和z都是正整数&#xff09;。 仅有一行输入&#xff0c;即斜边z的值&#xff08;z是正整数&#xff0c;且z<1…

23种经典设计模式:单例模式篇(C++)

前言&#xff1a; 博主将从此篇单例模式开始逐一分享23种经典设计模式&#xff0c;并结合C为大家展示实际应用。内容将持续更新&#xff0c;希望大家持续关注与支持。 什么是单例模式&#xff1f; 单例模式是设计模式的一种&#xff08;属于创建型模式 (Creational Pa…

将本地代码提交到git新仓库

建仓 首先需要新建一个仓库&#xff0c;注意一定要是空仓库&#xff0c;不要选任何初始化 在代码所在目录右击&#xff0c;进入Git Bash Here 初始化git仓库 git init将文件添加进库 git add .进行提交&#xff0c;-m 后面引号中的内容是本次提交内容&#xff0c;自行填写…

STM32F103 最小系统 PCB 设计与原理

这篇文章是来自我学习&#xff1a; ​​​​​​带着你从手册开始画板 STM最小系统板教程系列(一)_哔哩哔哩_bilibili​​​​​​ 这套教程的笔记&#xff0c;同时本文中也参考了其他教程以及我遇到的困惑与自答&#xff0c;最终汇总。 一、单片机最小系统 单片机最小系统是由…