iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >Mysql架构篇--Mysql(M-S) 主从同步
  • 212
分享到

Mysql架构篇--Mysql(M-S) 主从同步

mysql架构 2023-09-09 14:09:46 212人浏览 泡泡鱼
摘要

文章目录 前言:一、主从同步是什么?二、主从同步实现:1.准备工作:2.开启主从复制:2.1 mysql 服务端配置文件修改:2.2 mysql master 节点用户创建:2.3 mysql

文章目录


前言:


一、主从同步是什么?

Mysql主从同步(mysql Replication)是Mysql服务器的一个常用特性,它能够将MySQL服务器数据自动同步到其他MySQL服务器上,从而实现数据备份和负载均衡的功能。在实际应用中,MySQL主从同步可以用于实现高可用、灾备转移、读写分离等。

二、主从同步实现:

1.准备工作:

  • 首先需要有大于等于2个的mysql 实例,一个作为master,其它的作为slave;

2.开启主从复制:

2.1 mysql 服务端配置文件修改:

  • 作为master 的节点需要在配置文件中开启binlog,代码如下:
# log-bin 开启binlog 日志,master-log 为记录日志的文件前准名字log-bin=master-log# master 的服务节点唯一idserver-id=1# 可选参数配置哪些数据库是需要被同步的binlog-do-db=repbinlog-do-db=user# 可选参数配置哪些数据库是不需要被同步的binlog-ignore-db=mysqlbinlog-ignore-db=test# 此处演示使用配置使用旧的密码方式进行数据传输,因为mysql8 默认已经按照ssl 进行加密传输了default_authentication_plugin=mysql_native_passWord
  • 作为slave 的节点,配置节点id,代码如下:
server-id=2default_authentication_plugin=mysql_native_password

配置完成记得重启master和slave mysql 的服务

2.2 mysql master 节点用户创建:

-- 创建slave_rep 用户,密码是123456,可以被连接的ip 段是192.168.75CREATE USER 'slave_rep'@'192.168.75.%' IDENTIFIED BY '123456';  -- 对创建的用户赋予复制权限GRANT REPLICATION SLAVE ON *.* TO 'slave_rep'@'192.168.75.%';

2.3 mysql slave 节点开启数据复制:

  • 在master 节点查看状态:
show master status;

在这里插入图片描述

  • slave 节点设置数据同步节点:
change master to master_host='192.168.75.128',master_user='slave_rep',master_password='123456', master_port=3306,master_log_file='master-log.000002', master_log_pos=340

其中,master_ip_address是主服务器的IP地址,username和password是用于同步的用户名和密码,master-log.000002和340是主服务器上二进制日志文件的名称和位置,需要根据实际情况修改。

  • slave 启动主从同步:
start slave;
  • slave 查看主从同步状态:
show slave status ;

在这里插入图片描述

如果发现 Slave_IO_Running和Slave_SQL_Running都显示为Yes,说明配置MySQL主从成功。 但凡有一个不是Yes,是什么Connecting,No之类的,说明没配置成功。


  • 配置成功后,在master 创建允许同步的数据库,修改数据都会被同步到slave 节点;

3.新加入slave的节点如何开启主从复制:

对于已经存在的主从同步 节点,现在如果要在增加一个slave 从节点;

3.1 slave 从节点设置节点id:

server-id=3default_authentication_plugin=mysql_native_password

配置完成记得重启 mysql 服务

3.2 在slave节点新建数据库:

注意和master节点中要同步的数据库名称保持一致

3.3 在slave节点还原数据库:

将master 下要同步得数据数据全量备份后,还原到slave 节点的对应的数据库中

3.4 开启主从同步:

步骤同 2.3 mysql slave 节点开启数据复制:相同

三、主从同步原理:

1.binlog 日志:

binlog 记录了对于数据操作的ddl 和dml 语句,这些语句是可以直接执行;

2.binlog 日志记录:

2.1 日志记录格式:

在 MySQL 8 中,binlog-fORMat 参数已经被弃用,被 default_binlog_format 参数所取代。在 MySQL 8 中,如果未显式指定二进制日志的格式,default_binlog_format 参数将控制 MySQL 记录二进制日志的格式。
default_binlog_format 参数有以下可选值:

  • ROW:记录行级别别更改。在 MySQL 8 中,这是默认的二进制日志格式。
  • STATEMENT:记录每个需要记录的 SQL 语句。
  • MIXED:混合使用 ROW 和 STATEMENT 两种格式,选择使用哪一种格式取决于具体的 SQL 语句。

2.2 三种记录格式的区别:

  • 基于语句级别的复制(statement-based replication,SBR):这种方式是最初的复制方式,将主服务器上执行的修改数据的SQL语句记录到二进制日志文件中,然后将这些SQL语句发送到从服务器,从服务器再执行这些SQL语句完成数据同步。此方法的优点是复制过程中只传输SQL语句,网络传输量小;缺点是可能会有一些数据不一致的情况出现,例如在主服务器上执行的一些非确定性函数(如 uuid,date 等),或者在从服务器上存在不存在的表或数据行。

  • 基于行级别的复制(row-based replication,RBR):这种方式是在SBR基础上发展而来,它直接将修改数据的二进制数据发送到从服务器,然后在从服务器上执行相同的二进制数据完成数据同步。此方法的优点是能够保证数据一致性,能够处理一些复杂的SQL语句;缺点是对于大量的操作,可能会产生大数据量传输。

  • 基于混合复制(mixed-based replication,MBR):它是综合了SBR和RBR两种方式的优点,即在不同的情况下选择不同的方式。例如,对于不涉及大量数据变更的SQL语句使用语句级别的方式,对于大量数据变更的SQL语句使用行级别方式。该方式比较灵活,能够平衡性能和数据一致性的关系。

需要注意的是,建议在配置主从复制时明确指定二进制日志的格式,以避免误解和不必要的问题。在一致性设置和数据同步方面,明确定义二进制日志格式可以提高主从数据同步的效率和稳定性。

2.3 binlog 主从复制流程:

在这里插入图片描述

  • slave 节点先发送请求给到主节点,主节点在有数据变化时就可以推送数据给到 从节点;
  • 从节点接到数据后先写到log 中,然后在由其它的线程对log 数据进行解析然后入库;

四、总结

Mysql 主从同步主要是通过master 节点开启binlog 日志,然后slave 节点消费binlog 日志的数据,将数据更新到各自的库中。

来源地址:https://blog.csdn.net/l123lgx/article/details/131430713

您可能感兴趣的文档:

--结束END--

本文标题: Mysql架构篇--Mysql(M-S) 主从同步

本文链接: https://www.lsjlt.com/news/401622.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Mysql架构篇--Mysql(M-S) 主从同步
    文章目录 前言:一、主从同步是什么?二、主从同步实现:1.准备工作:2.开启主从复制:2.1 mysql 服务端配置文件修改:2.2 mysql master 节点用户创建:2.3 mysql...
    99+
    2023-09-09
    mysql 架构
  • Mysql架构篇--Mysql 主从同步方案
    文章目录 前言一、传统的主从复制:1 原理:2 缺点: 二、半同步复制(Semi-Synchronous Replication):三、组复制:1 原理:2 实现:2.1 myql 实例安...
    99+
    2023-09-23
    mysql 架构 数据库
  • Mysql——主从同步
    一、什么是Binlog Mysql的二进制日志可以是Mysql最重要的日志, 记录了所有的DDL和DML语句(除了数据查询语句之外的语句)语句,以事件形式记录,还包含语句所执行的消耗时间,Mysql的二进制日志是事务安全型的。 二进制日志包...
    99+
    2023-10-26
    mysql 数据库 sql
  • MySQL主从复制架构实践:主从不同步的解决方案
    前言 大家好,我是沐风晓月,本文收录于《MySQL入门到精通》专栏,希望对你有用; 之前在做MySQL主从架构的时候,遇到了形形色色的问题,比如: 主从配置好之后,双yes的情况下,居然不能同步;切换...
    99+
    2023-10-25
    架构 服务器 运维 云原生 linux
  • MYSQL架构中怎样进行主从半同步复制
    本篇文章为大家展示了MYSQL架构中怎样进行主从半同步复制,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。Mysql 5.5 版本之后引入了半同步复制功能,主从服务器...
    99+
    2024-04-02
  • MySQL主从同步配置
    Mysql 主从同步原理 就是基于数据库里面的那个 binlog 文件进行数据同步 具体步骤: step1:master将数据改变记录到二进制日志(binary log)中。step2: 当slav...
    99+
    2023-09-09
    mysql
  • MySQL 主从同步原理
    当涉及到高可用性、负载均衡以及数据备份的需求时,MySQL 主从同步技术是一个非常重要的解决方案。本文将详细介绍 MySQL 主从同步的原理、配置和示例。 一、什么是 MySQL 主从同步? MySQL 主从同步是一种数据库复制技术...
    99+
    2023-09-01
    mysql 数据库
  • 如何搞懂MySql主从同步
    本篇内容主要讲解“如何搞懂MySql主从同步”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何搞懂MySql主从同步”吧! MySq...
    99+
    2023-03-06
    mysql
  • 怎么搭建mysql主从同步
    搭建mysql主从同步的方法首先,使用记事本打开主服务器my.cnf配置文件,在文件进行以下配置:log-bin = mysql-binserver-id = 1  # ...
    99+
    2024-04-02
  • mysql 如何关闭主从同步
    MySQL可以通过以下三种方法来关闭主从同步 1. 使用STOP SLAVE命令。这个命令会停止复制从主服务器的更新,直到使用START SLAVE命令恢复为止。可以在从服务器上使用以下命令: STOP SLAVE; 2. 使用RESET ...
    99+
    2023-08-23
    mysql 服务器 数据库
  • MYSQL架构中如何主从MHA
    这篇文章给大家介绍MYSQL架构中如何主从MHA,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。MHA – GTID模式MasterHigh Availability Manager a...
    99+
    2024-04-02
  • 怎么部署mysql双向主从复制M-M
    本篇内容介绍了“怎么部署mysql双向主从复制M-M”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!通过my...
    99+
    2024-04-02
  • mysql主从同步机制原理
    本篇内容主要讲解“mysql主从同步机制原理”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“mysql主从同步机制原理”吧! 1、binlog+pos同步(默认...
    99+
    2024-04-02
  • MySQL主从同步加速的方案
    本篇内容主要讲解“MySQL主从同步加速的方案”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“MySQL主从同步加速的方案”吧! 一、问题起源 MySQL的主...
    99+
    2024-04-02
  • mysql中怎么配置主从同步
    今天就跟大家聊聊有关mysql中怎么配置主从同步,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。 0.首先在准备两个机器A,B,在上面安装相同版本的...
    99+
    2024-04-02
  • mysql主从为什么会不同步
    这篇文章主要为大家展示了“mysql主从为什么会不同步”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“mysql主从为什么会不同步”这篇文章吧。 ...
    99+
    2024-04-02
  • MYSQL架构中该怎么主从GTID
    这期内容当中小编将会给大家带来有关MYSQL架构中该怎么主从GTID,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。GTID又叫全局事务ID(Global Transact...
    99+
    2024-04-02
  • mysql中怎样配置主从同步
    这期内容当中小编将会给大家带来有关mysql中怎样配置主从同步,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。 主host:www IP:192.168.9.124 从...
    99+
    2024-04-02
  • mysql主从同步失败怎么办
    mysql主从同步失败的解决方法首先,在从服务器中停止复制线程;MariaDB [(none)]> STOP SLAVE;Query OK, 0 rows affected (17.48 sec)从服务器复制线程停止后,在从服务器上重置SL...
    99+
    2024-04-02
  • MySQL主从同步原理及应用
    目录1、主从同步原理主从同步架构图(异步同步)主从同步流程(异步同步)什么是binlog?binlog的3种格式binlog格式对比主从同步的2种方式主从同步流程(半同步)半同步适用...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作