主服务器:192.168.1.133;从服务器:192.168.1.136(实际应用时,改成自己的服务器IP)
2台服务器的操作系统:centos7.9,mySQL版本:8.0.24;
#主服务器 192.168.1.133#查看BINLOG状态,最新版本默认已经开启
mysql> show variables like '%log_bin%';vim /etc/my.cnf#GTID 复制通过为每个事务分配一个全局唯一标识符,简化了故障切换和故障恢复过程。# 添加
[mysqld]
server-id=1 #必须唯一
gtid_mode=on #必须开启
enforce-gtid-consistency=true
binlog_do_db=demo #只复制demo数据库# 重启mysqlsystemctl restart mysqld.service#登录mysql,添加用于同步的数据库账号mysql> create user 'repl'@'%' identified by '123456';mysql> grant replication slave on *.* to 'repl'@'%';mysql> flush privileges;
#从库配置 192.168.1.136vim /etc/my.cnf
# 添加
[mysqld]
server-id=2
gtid_mode=on
enforce-gtid-consistency=true# 重启
mysqlsystemctl restart mysqld.service#登录 MySQL 并配置复制:mysql -u root -p
CHANGE MASTER TOMASTER_HOST='192.168.1.133',MASTER_USER='repl',MASTER_PASSWORD='123456',MASTER_AUTO_POSITION=1;
START SLAVE;#检查从服务器的复制状态:
SHOW SLAVE STATUS\G;#确保 Slave_IO_Running 和 Slave_SQL_Running 都为 Yes。
优点
- 简化管理:GTID 消除了手动管理二进制日志文件和位置的复杂性,简化了复制管理和故障恢复。
- 提高一致性:确保每个事务都有一个唯一标识符,确保复制的事务一致性。
- 支持自动故障恢复:在主服务器故障时,可以更轻松地切换到新的主服务器,而不需要手动重新配置复制位置。
使用 GTID 和 InnoDB 存储引擎,可以实现高效、可靠的主从复制,满足高可用性和数据一致性的需求。