自学内容网 自学内容网

MySQL主从同步

一、关于主从同步

1、mysql 主从复制原理

  MySQL 主从同步是一种数据库复制技术,它通过将主服务器上的数据更改复制到一个或多个从服务器,实现数据的自动同步。

  主从同步的核心原理是将主服务器上的二进制日志复制到从服务器,并在从服务器上执行这些日志中的操作。

2、工作过程

  1. 主服务器日志记录:主服务器在执行数据更新操作(如 INSERT、UPDATE、DELETE)时,会将这些操作记录到二进制日志(binlog)中。
  2. 从服务器连接主服务器:从服务器通过配置的主服务器信息(如 IP、端口、用户名、密码等),建立与主服务器的连接。
  3. 从服务器 I/O 线程工作:从服务器启动 I/O 线程,该线程连接到主服务器,请求主服务器发送二进制日志。主服务器收到请求后,通过二进制日志 Dump 线程将二进制日志事件发送给从服务器的 I/O 线程。I/O 线程接收到日志事件后,将其写入到从服务器的中继日志(relay log)中。
  4. 从服务器 SQL 线程工作:从服务器的 SQL 线程会读取中继日志中的事件,并在从服务器上重放这些事件,从而实现数据的同步。SQL 线程按照中继日志中记录的顺序执行 SQL 语句,使从服务器的数据与主服务器保持一致。

3、为什么要做主从复制

灾备

数据分布

负载平衡

读写分离

提高并发能力

4、MySQL复制常用的拓扑结构

主从类型(Master-Slave)

主主类型(Master-Master)

级联类型(Master-Slave-Slave)

二、基于gtid的主从同步配置

1、准备工作

        三台还原初始配置的主机

主机名IP地址主从关系
open-2192.168.183.11
open-1192.168.183.12
open-3192.168.183.13

        三台主机同时安装并启动MySQL服务:

 yum install -y mysql-server
 systemctl enable --now mysqld

2、配置主从

主库配置:

配置文件:
[root@openEuler-2 ~]# vim /etc/my.cnf.d/mysql-server.cnf 
在末尾加入
server_id=11
gtid_mode=ON
enforce-gtid-consistency=ON

# 重启服务
[root@openEuler-1 ~]# systemctl restart mysqld
 
# 授权用户
[root@openEuler-1 ~]# mysql
mysql> create user yx@'192.168.183.%' identified with mysql_native_password by '123456';
mysql> grant replication slave on *.* to rep@'192.168.183.%';

从库配置:

两台从服务器配置相同,以open-1为例

[root@openEuler-1 ~]# vim /etc/my.cnf
[root@openEuler-1 ~]# vim /etc/my.cnf.d/mysql-server.cnf
server_id=12
gtid_mode=ON
enforce-gtid-consistency=ON
[root@openEuler-1 ~]# systemctl restart mysqld
[root@openEuler-1 ~]# mysql
 
mysql> change replication source to
    -> source_host='192.168.183.11',
    -> source_user='yx',
    -> source_password='123456',
    -> source_auto_position=1;
 
mysql> start slave;
 
mysql> show slave status \G

3、测试

主库

从库


原文地址:https://blog.csdn.net/m0_73907449/article/details/145263383

免责声明:本站文章内容转载自网络资源,如侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!