MySQL的主从同步(Master-Slave Replication)是一个常用的数据备份和恢复策略,它允许在两个或多个数据库服务器之间实现数据同步。这种方案不仅可以提高数据备份的效率,还可以实现读写分离,从而提高整个系统的性能和可靠性。其中,主动发送数据的MySQL Server称为主(Master),被动接收数据的MySQL Server称为从(Slave)。
一、主从同步的基本原理
MySQL主从同步是基于二进制日志(binlog)实现的。主数据库将数据变更记录在binlog中,而从数据库则通过读取binlog来获取这些变更,并将它们应用到自己的数据库中。这样,从数据库就可以保持与主数据库的数据一致性。

二、基于日志点的主从同步
基于日志点的复制是指,Slave明确指定从Master中某个日志文件中的某个位置开始复制,从该日志点之后的数据变更都可以复制到Slave。
配置步骤如下:
- Master与Slave中都配置server_id,并指定使用二进制日志。
- Master中创建供Slave复制时使用的用户,并为其指定权限。
- Master中查看当前二进制文件的信息,包括文件名、日志位置。
- Slave指定Master具体信息,包括IP、端口、用户、复制的起始位置。
- Slave开启复制。
1. 环境准备
- 两台服务器
一台作为主服务器(Master),一台作为从服务器(Slave) - 均安装MySQL8.0
- 均安装Navicat[可选项]
使用数据库连接工具Navicat可以便捷的连接数据库,从而方便操作。
2. 配置主服务器(Master)
编辑主服务器的MySQL配置文件,通常位于/etc/mysql/mysql.conf.d/mysqld.cnf或/etc/my.cnf,添加下列配置项:
[mysqld]
server-id=1
log-bin=mysql-binlog
binlog-do-db=your-database-name
server-id:MySQL服务器的唯一ID,主从服务器ID不能相同log-bin:启用二进制日志,记录所有数据库的修改信息binlog-do-db:指定需要同步的数据库名(可选配置)
重启MySQL服务使配置生效。
然后,登录MySQL并执行以下命令:
# 查看配置server_id的值,确认配置已生效
SHOW VARIABLES LIKE 'server_id';
# 在Master上创建复制用户并授权
CREATE USER 'replication_user'@'%' identified by 'password';
GRANT REPLICATION SLAVE ON *.* TO 'replication_user'@'%';
# 刷新用户权限信息
FLUSH PRIVILEGES;
# 查看Master状态
SHOW MASTER STATUS;
3. 配置从服务器(Slave)
编辑从服务器的MySQL配置文件,添加下列配置项:
[mysqld]
server-id=2
relay-log=mysql-relay-bin
replicate-do-db=your_database_na

本文详细介绍了MySQL主从同步的基本原理、基于日志点和GTID的配置方法,涵盖了复制延时优化、监控以及常见故障的解决策略。
最低0.47元/天 解锁文章
380

被折叠的 条评论
为什么被折叠?



