MySQL 8.0 主从复制详解与实践
MySQL 8.0 主从复制详解与实践
1. 简介
MySQL 8.0 提供了强大的主从复制功能,允许将数据从一个服务器同步到另一个服务器,以实现数据备份、高可用性和读写分离等优势。本文将深入探讨 MySQL 8.0 主从复制的原理、配置和实践,带你一步步实现主从复制的设置。
2. 什么是主从复制?
基本概念
数据库主从复制基于主从关系,其中一个数据库被定义为主数据库(Master),而另一个被定义为从数据库(Slave)。主数据库负责接收和记录所有的数据变更操作,包括插入、更新和删除。从数据库则通过复制主数据库的变更日志来保持数据的同步。
作用和优势:
灾备: 主从复制允许将主数据库的数据实时复制到从数据库中,这样在主数据库发生故障时,可以快速切换到从数据库以继续提供服务,从而实现高可用性和灾难恢复。
读写分离:主从复制使得从数据库可以用于处理只读查询,分担主数据库的负荷。这提高了系统的性能和响应速度,尤其在高并发情况下。
数据分析和报表生成: 从数据库可以用于执行复杂的数据分析和报表生成操作,而不影响主数据库的性能,从而优化了业务流程。
分布式数据部署: 主从复制可以用于在不同地理位置部署数据库,从而实现数据在不同地区的复制和同步。
升级和测试: 通过将主数据库升级或者测试新功能,从数据库可以继续提供服务,从而不影响线上环境。
应用场景
- 电子商务平台: 在电商平台中,主从复制可以用于实现读写分离,提高并发处理能力,同时确保数据的一致性。
- 社交网络: 在社交网络应用中,可以利用主从复制来提供快速的读取服务,同时将数据变更复制到从数据库以备份数据。
- 实时监控和报警系统: 在监控系统中,主从复制可以用于实现数据的分布式存储和快速数据查询。
- 新闻和媒体网站: 在高访问量的新闻网站中,可以使用主从复制来提供高可用性和快速的内容访问。
- 金融服务: 在金融行业,数据的安全性和可用性至关重要,主从复制可以用于数据备份和高可用性的实现。
3. 主从复制的原理
- 当主库在事务提交时,会将数据的变更记录在二进制日志文件(Binlog)中。
- 从库会读取主库的二进制日志文件,并将其写入中继日志(Relay Log)中。
- 从库会重新执行中继日志中的事件,从而反映出自己的数据的变化。
4. 环境准备和配置
两台装有 MySQL 的服务器
- 主: 192.168.64.4
- 从: 192.168.64.5
开放 3306 端口
5. 主从库配置
5.1 主库配置
修改配置文件 /etc/my.cnf
1 |
|
主库创建数据同步的用户并授权
1 |
|
1 |
|
- File 这里对应下述的
SOURCE_LOG_FILE
- Position 这里对应下述的
SOURCE_LOG_POS
5.2 从库配置
修改配置文件 /etc/my.cnf
1 |
|
设置主库地址以及同步地址
1 |
|
执行开启从库复制
1 |
|
查看从库配置状态
1 |
|
这两项要为 yes
.
MySQL 8.0 主从复制详解与实践
https://cuifuan.github.io/2023/04/01/database/mysql-master-slave/