news 2026/5/28 15:06:02

MySQL gtid_mode 双主复制配置,基于MySQL8.4.3

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
MySQL gtid_mode 双主复制配置,基于MySQL8.4.3

GTID 会自动比对已执行的事务集,自动定位从哪里开始同步

配置my.cnf

[mysqld] server-id=1 # 必须唯一,多台服务器之间必须不一样 log-bin=mysql-bin # 启用二进制日志 binlog-format=ROW # 推荐使用ROW格式 innodb_flush_log_at_trx_commit=1 # 确保事务安全 sync_binlog=1 # 每次事务提交都同步二进制日志 #忽略下面的系统表 replicate-ignore-db=mysql replicate-ignore-db=information_schema replicate-ignore-db=performance_schema replicate-ignore-db=sys mysql_native_password=ON # MySQL8.4默认密码模式需要SSL非常麻烦 #下面三个参数是开启gtid_mode gtid_mode=ON log-replica-updates=ON enforce-gtid-consistency=ON #下面2个参数, 防止自增主键冲突导致 GTID崩溃 auto_increment_increment = 2 auto_increment_offset = 1 #步长 另一台设为 2

改配置之后需要重启服务器 sudo systemctl restart mysqld, 不重启mysql_native_password不生效后面的账号创建不了

创建用于主从复制的账号

两边建立一样的名字密码, 方便不搞错

其中mysql_native_password 可以不使用SSL, 配SSL比较麻烦

CREATE USER 'replicator'@'%' IDENTIFIED WITH mysql_native_password BY '换成你的密码'; GRANT REPLICATION SLAVE ON *.* TO 'replicator'@'%'; FLUSH PRIVILEGES;

启动复制

1库配2库的信息, 2库配1库的信息

CHANGE REPLICATION SOURCE TO SOURCE_HOST='A库配B_IP B库配A_IP', SOURCE_USER='replicator', SOURCE_PASSWORD='你的密码', SOURCE_SSL=0, SOURCE_AUTO_POSITION=1; START REPLICA;

检查复制是否成功

SHOW REPLICA STATUS;

关注:

Replica_IO_Running: Yes
Replica_SQL_Running: Yes
Retrieved_Gtid_Set:
Executed_Gtid_Set:

验证配置

  1. 在 Server1 上创建表或插入数据,检查是否同步到 Server2
  2. 在 Server2 上修改数据,检查是否同步回 Server1
  3. 关掉一台服务器, 在一台服务器里写数据, 关掉的启动后也会自动同步关机期间数据

通过以上步骤,成功配置了 MySQL 双主复制

下面介绍一台机器坏掉了如何恢复

如果是一台新的机器, MYSQL需要先根据前面的配置, 配置好环境和账号

⚠️生产环境建议在低峰期执行

⚠️新的备份库建议删除所有数据库之后再重建

⚠️删除库的时候, 千万不要处于互为备份状态, 否则删掉一个另一个也删了

取消备份:STOP REPLICA;


导出主库数据(全量备份)

mysqldump

mysqldump -u root -p \ -h 192.168.1.100 \ --single-transaction \ --routines \ --events \ --set-gtid-purged=ON \ --all-databases > full_backup.sql

导入主库数据到新的数据库

mysql -u root -p < full_backup.sql

接下来根据文章前面内容, 重建备份即可

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/28 15:03:13

VBA 中获取某单元格 / Range 的行号

VBA 中获取某单元格 / Range 的行号Dim rw As Long rw Range("C3").Row 返回 3 rw Cells(5, 2).Row 返回 5 rw Selection.Row 当前选区首行特此记录anlog2026年5月27日

作者头像 李华
网站建设 2026/5/28 15:02:19

数字化混沌系统的动力学分析与伪随机序列生成算法设计方案【附仿真】

✨ 长期致力于数字化混沌系统、伪随机序列、级联法、扰动法、布尔函数研究工作&#xff0c;擅长数据搜集与处理、建模仿真、程序编写、仿真设计。 ✅ 专业定制毕设、代码 ✅ 如需沟通交流&#xff0c;点击《获取方式》 &#xff08;1&#xff09;基于Jacobi矩阵与可重构结构的高…

作者头像 李华
网站建设 2026/5/28 15:01:53

Kubernetes运维工程师面试题【20260527】002篇

文章目录 第一部分:传统运维硬通货(地基,必问) 第二部分:大数据生态基础(加分项) 第三部分:云原生与自动化(核心要求) 第四部分:AI/Tob 项目实战(差异化竞争力) 💡 给你的面试建议: 这份“k8s运维工程师(异地招聘)”的JD非常有代表性。它的核心诉求可以拆解为…

作者头像 李华
网站建设 2026/5/28 15:01:53

从二分到几何:深入解析膨胀木棍问题的实数域求解策略

1. 膨胀木棍问题的现实背景与数学抽象 第一次看到"膨胀的木棍"这个题目时&#xff0c;我脑海中浮现的是小时候把木棍浸在水里观察它弯曲变形的场景。但在算法竞赛中&#xff0c;这个问题被巧妙地转化为一个经典的几何与实数域二分结合的数学问题。题目描述很简单&…

作者头像 李华