概述

  • OS:Ubuntu 22.04.5 LTS

  • 宝塔面板:免费版9.0.0

  • 数据库版本:MySQL 5.7.44

  • 服务器:阿里云ECS

目的

自建数据库主主同步,互为僚机。

1、所用命令如下

锁定主库表以防止数据写入:
FLUSH TABLES WITH READ LOCK;
解除锁表:
UNLOCK TABLES;

获取 MASTER_LOG_FILE 和 MASTER_LOG_POS 的值:
SHOW MASTER STATUS;
主主同步模式或从节点,主从节点均执行重置
RESET SLAVE ALL;
主从模式下主节点执行
RESET MASTER;

从节点
CREATE USER 'sync'@'%' IDENTIFIED BY '****#2024+';
GRANT REPLICATION SLAVE ON *.* TO 'sync'@'%';
FLUSH PRIVILEGES;

在my.cnf文件追加,并重启
[mysqld]
log-slave-updates=1
auto-increment-increment=2
auto-increment-offset=2

CHANGE MASTER TO
  MASTER_HOST='172.21.114.22',
  MASTER_USER='sync',
  MASTER_PASSWORD='****#2024+',
  MASTER_LOG_FILE='mysql-bin.000001',
  MASTER_LOG_POS=2908;
START SLAVE;

主节点
CREATE USER 'sync'@'%' IDENTIFIED BY 'ecsbt#2024+';
GRANT REPLICATION SLAVE ON *.* TO 'sync'@'%';
FLUSH PRIVILEGES;

在my.cnf文件追加,并重启
[mysqld]
binlog-format=row
log-slave-updates=1
auto-increment-increment=2
auto-increment-offset=1

CHANGE MASTER TO
  MASTER_HOST='172.25.2.193',
  MASTER_USER='sync',
  MASTER_PASSWORD='ecsbt#2024+',
  MASTER_LOG_FILE='mysql-bin.000001',
  MASTER_LOG_POS=154;
START SLAVE;

查看同步状态:
SHOW SLAVE STATUS\G

2、校验

如图确保 Slave_IO_Running 和 Slave_SQL_Running 都为 Yes,表示同步正常。