详解MySQL主从复制实战 - 基于GTID的复制
简介
MySQL主从复制是MySQL数据库中常见的一种复制结构,可以实现数据的自动同步和备份。基于GTID的复制是一种相对较新且更稳定、更可靠的复制方式。本文将详细讲解基于GTID的MySQL主从复制实战过程。
环境准备
在进行MySQL主从复制之前,我们需要有两个MySQL实例,其中一个是主库,另一个是从库。
以下是两个MySQL实例的配置信息:
主库:
- IP地址:192.168.0.101
- 数据库名:test
- 用户名:root
- 密码:123456
从库:
- IP地址:192.168.0.102
- 数据库名:test
- 用户名:root
- 密码:123456
主库配置
- 修改主库my.cnf配置文件
在主库的my.cnf配置文件中添加以下配置信息:
server-id=1
log-bin=mysql-bin
binlog-format=ROW
gtid-mode=on
enforce-gtid-consistency=true
- 创建一个名为replica的从库用户
可以使用以下命令在主库中创建一个名为replica的从库用户:
CREATE USER 'replica'@'192.168.0.102' IDENTIFIED BY '123456';
GRANT REPLICATION SLAVE ON *.* TO 'replica'@'192.168.0.102';
- 查看主库状态
在主库上执行以下命令查看主库状态:
SHOW MASTER STATUS;
记录下File和Position的值,稍后在从库配置中需要使用。
从库配置
- 修改从库my.cnf配置文件
在从库的my.cnf配置文件中添加以下配置信息:
server-id=2
gtid-mode=on
enforce-gtid-consistency=true
- 启动从库
在从库上启动MySQL实例:
service mysql start
- 将主库数据复制到从库
在从库上执行以下命令将主库数据复制到从库:
CHANGE MASTER TO MASTER_HOST='192.168.0.101',MASTER_USER='replica',MASTER_PASSWORD='123456',MASTER_AUTO_POSITION=1;
START SLAVE;
- 查看从库状态
在从库上执行以下命令查看从库状态:
SHOW SLAVE STATUS\G
可以查看到GTID相关的信息已经被同步。
示例1:在主库修改数据并观察从库同步情况
在主库中修改一条记录:
UPDATE user SET name='Lucy' WHERE id=1;
重新查看主库状态,可以看到File和Position已经发生了变化。在从库上查看复制情况:
SHOW SLAVE STATUS\G
可以看到GTID相关的信息已经被同步,表数据也已经被同步到从库。
示例2:在从库添加数据并观察主库同步情况
在从库中添加一条记录:
INSERT INTO user (name, age) VALUES ('Tom', 20);
在主库上查询数据:
SELECT * FROM user;
可以看到数据已经被同步到主库。
结束
本文详细讲解了基于GTID的MySQL主从复制实战过程,包括主库和从库的配置,以及示例数据的同步情况演示。希望对MySQL主从复制有兴趣的读者有所帮助。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:详解MySQL主从复制实战 – 基于GTID的复制 - Python技术站