ITPub博客

首页 > 数据库 > MySQL > 基于Linux的GTID主从复制MySQL8.4的搭建

基于Linux的GTID主从复制MySQL8.4的搭建

原创 MySQL 作者:梦夕林1992 时间:2026-05-06 18:37:27 0 删除 编辑

MySQL主从复制是提升数据库可用性和负载均衡的常用方案。GTID(全局事务标识符)模式简化了主从复制配置与管理。本文将介绍在Linux环境下基于MySQL 8.4搭建GTID主从复制的完整步骤。

环境参数

主机名

物理IP

操作系统版本

MySQL版本

master

192.168.186.11

Rhel 6.4

MySQL 8.4.28

slave

192.168.186.12

Rhel 6.4

MySQL 8.4.28

注意 :

•  如果两台服务器都是全新的且没有数据,可以跳过备份与恢复步骤。

•  本文档适用于主库已有数据的情况。

1. 初始化参数设置

主库必须参数

在 /etc/my.cnf   中添加以下配置:

[mysqld]
server-id = 1
log_bin
binlog_format = ROW
gtid_mode = on
enforce_gtid_consistency = on
log-slave-updates = on

从库建议参数

在 /etc/my.cnf   中添加以下配置:

注意事项 :

建议从库开启binlog,方便后续架构扩展。

主从库的 server-id   必须不同。

2. 生产端全局备份

根据数据量选择备份方式:

方法一:XtraBackup 全量备份

xtrabackup --defaults-file=/etc/my.cnf -uroot -pmysql -S /tmp/mysql.sock --slave-info --backup --target-dir=/xtar

方法二:MySQLDump 全库备份

mysqldump -uroot -pAbcd321# -S /tmp/mysql.sock --single-transaction -A -R -E --triggers --source-data=2 --flush-logs > full.sql

建议 :大规模数据量推荐使用XtraBackup备份。

3. 目标端全局恢复

方法一:Xtrabackup 恢复

# 应用 redo 日志

xtrabackup --prepare --target-dir=/xtar

# 复制备份数据

xtrabackup --defaults-file=/etc/my.cnf --copy-back --target-dir=/xtar

# 修改权限并启动 MySQL

chown -R mysql:mysql /mysql/product/data
service mysqld start

方法二:mysqldump 恢复

service mysqld start
reset master;
mysql -uroot -pmysql < full.sql

4. 生产端创建复制用户

在主库执行以下SQL命令:

CREATE USER 'backup'@'192.168.186.12' IDENTIFIED BY 'mcbackup';
GRANT REPLICATION SLAVE ON *.* TO 'backup'@'192.168.186.12';
FLUSH PRIVILEGES;

5. 目标端配置复制连接

根据备份方式选择对应配置:

方法一:

reset master;
set global gtid_purged='63d891e7-b011-11e8-99a2-000c2942b47d:1-11';
 
change replication source to source_host = '192.168.186.11',source_port = 3306, source_user = 'backup', source_password = 'mcbackup', source_auto_position = 1,get_source_public_key = 1;

注意 : gtid_purged   的值需从XtraBackup生成的 xtrabackup_binlog_info   文件中获取。

方法二:

reset master;
set global.gtid_purged='63d891e7-b011-11e8-99a2-000c2942b47d:1-11;
 
change replication source to source_host = '192.168.186.11',source_port = 3306, source_user = 'backup', source_password = 'mcbackup', source_auto_position = 1,get_source_public_key = 1;

       注意 : gtid_purged  的值需从mysqldump备份文件的头部获取。

6. 启动复制

start replica;
show replica status\g;
……
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
……

检查输出中 Slave_IO_Running  和 Slave_SQL_Running  是否均为 Yes ,确认复制状态正常。


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/29956245/viewspace-3117202/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2014-10-13

  • 博文量
    90
  • 访问量
    85391