MySQL主从同步
一、关于主从同步
1、mysql 主从复制原理
MySQL 主从同步是一种数据库复制技术,它通过将主服务器上的数据更改复制到一个或多个从服务器,实现数据的自动同步。
主从同步的核心原理是将主服务器上的二进制日志复制到从服务器,并在从服务器上执行这些日志中的操作。
2、工作过程
- 主服务器日志记录:主服务器在执行数据更新操作(如 INSERT、UPDATE、DELETE)时,会将这些操作记录到二进制日志(
binlog
)中。 - 从服务器连接主服务器:从服务器通过配置的主服务器信息(如 IP、端口、用户名、密码等),建立与主服务器的连接。
- 从服务器 I/O 线程工作:从服务器启动 I/O 线程,该线程连接到主服务器,请求主服务器发送二进制日志。主服务器收到请求后,通过二进制日志 Dump 线程将二进制日志事件发送给从服务器的 I/O 线程。I/O 线程接收到日志事件后,将其写入到从服务器的中继日志(
relay log
)中。 - 从服务器 SQL 线程工作:从服务器的 SQL 线程会读取中继日志中的事件,并在从服务器上重放这些事件,从而实现数据的同步。SQL 线程按照中继日志中记录的顺序执行 SQL 语句,使从服务器的数据与主服务器保持一致。
3、为什么要做主从复制
灾备
数据分布
负载平衡
读写分离
提高并发能力
4、MySQL复制常用的拓扑结构
主从类型(Master-Slave)
主主类型(Master-Master)
级联类型(Master-Slave-Slave)
二、基于gtid的主从同步配置
1、准备工作
三台还原初始配置的主机
主机名 | IP地址 | 主从关系 |
open-2 | 192.168.183.11 | 主 |
open-1 | 192.168.183.12 | 从 |
open-3 | 192.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)!