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

发布时间:2026/5/28 15:06:23

MySQL gtid_mode 双主复制配置,基于MySQL8.4.3 GTID 会自动比对已执行的事务集自动定位从哪里开始同步配置my.cnf[mysqld] server-id1 # 必须唯一多台服务器之间必须不一样 log-binmysql-bin # 启用二进制日志 binlog-formatROW # 推荐使用ROW格式 innodb_flush_log_at_trx_commit1 # 确保事务安全 sync_binlog1 # 每次事务提交都同步二进制日志 #忽略下面的系统表 replicate-ignore-dbmysql replicate-ignore-dbinformation_schema replicate-ignore-dbperformance_schema replicate-ignore-dbsys mysql_native_passwordON # MySQL8.4默认密码模式需要SSL非常麻烦 #下面三个参数是开启gtid_mode gtid_modeON log-replica-updatesON enforce-gtid-consistencyON #下面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_HOSTA库配B_IP B库配A_IP, SOURCE_USERreplicator, SOURCE_PASSWORD你的密码, SOURCE_SSL0, SOURCE_AUTO_POSITION1; START REPLICA;检查复制是否成功SHOW REPLICA STATUS;关注Replica_IO_Running: YesReplica_SQL_Running: YesRetrieved_Gtid_Set:Executed_Gtid_Set:验证配置在 Server1 上创建表或插入数据检查是否同步到 Server2在 Server2 上修改数据检查是否同步回 Server1关掉一台服务器, 在一台服务器里写数据, 关掉的启动后也会自动同步关机期间数据通过以上步骤成功配置了 MySQL 双主复制下面介绍一台机器坏掉了如何恢复如果是一台新的机器, MYSQL需要先根据前面的配置, 配置好环境和账号⚠️生产环境建议在低峰期执行⚠️新的备份库建议删除所有数据库之后再重建⚠️删除库的时候 千万不要处于互为备份状态 否则删掉一个另一个也删了取消备份STOP REPLICA;导出主库数据全量备份mysqldumpmysqldump -u root -p \ -h 192.168.1.100 \ --single-transaction \ --routines \ --events \ --set-gtid-purgedON \ --all-databases full_backup.sql导入主库数据到新的数据库mysql -u root -p full_backup.sql接下来根据文章前面内容 重建备份即可

相关新闻