MySQL 主从复制原理

MySQL 主从复制原理


MySQL 主从复制是一种数据同步技术,它通过将主服务器(Master)上的数据更改复制到一个或多个从服务器(Slave),来实现数据的冗余备份、读写分离等目的。主从复制的核心是二进制日志(Binary Log),主服务器将其上的数据更改记录到二进制日志中,从服务器则通过读取和执行这些日志中的操作来实现数据的同步。

工作过程

  1. 主服务器记录数据更改:当主服务器上的数据发生更改时,这些更改会被记录到二进制日志中。

  2. 从服务器请求日志:从服务器上的 I/O 线程连接到主服务器,并请求二进制日志的内容。

  3. 主服务器发送日志:主服务器上的 binlog dump 线程读取二进制日志,并将这些日志发送给从服务器的 I/O 线程。

  4. 从服务器写入中继日志:从服务器的 I/O 线程将接收到的二进制日志内容写入到中继日志(Relay Log)中。

  5. 从服务器执行操作:从服务器上的 SQL 线程读取中继日志中的操作,并在从服务器上执行这些操作,从而实现数据的同步。


配置主服务器
修改主服务器的配置文件
 

[mysqld]
server-id=1
log-bin=mysql-bin
binlog-do-db=your_database_name

重启 MySQL 服务

[mysqld]
server-id=1
log-bin=mysql-bin
binlog-do-db=your_database_name 

创建一个用于复制的用户,并授予必要的权限 

CREATE USER 'replica'@'%' IDENTIFIED BY 'replica_password';
GRANT REPLICATION SLAVE ON *.* TO 'replica'@'%';
FLUSH PRIVILEGES;

锁定数据库并获取二进制日志的位置

FLUSH TABLES WITH READ LOCK;
SHOW MASTER STATUS;

解锁数据库

UNLOCK TABLES;

 配置从服务器

修改从服务器的配置文件

[mysqld]
server-id=2  # Slave1 的 ID,Slave2 应使用不同的 ID,如 3
relay-log=relay-bin

重启 MySQL 服务
导入主服务器的数据备份
配置从服务器以连接到主服务器
 

CHANGE MASTER TO
MASTER_HOST='master_host_ip',
MASTER_USER='replica',
MASTER_PASSWORD='replica_password',
MASTER_LOG_FILE='mysql-bin.xxxxxx',  # 使用之前从主服务器获取的 File 值
MASTER_LOG_POS=xxxxxx;  # 使用之前从主服务器获取的 Position 值

启动从服务器的复制进程

START SLAVE;

检查复制状态

SHOW SLAVE STATUS \G;

 

 

 

 

 

 

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值