实验机器:

192.168.188.30

192.168.188.31

一.主主模式搭建,两台机器的版本需一致

其他配置可参考MySQL8安装那篇文章 配置参数除server-id不同外,只需添加以下两个参数即可

binlog_format=ROW

log_bin=/data/mysql/data/mysql-bin-30.log (可选)

二、在188.30 数据库 设置同步账号与密码,此密码可不同

mysql>create user 'repl_user'@'192.168.188.%' identified by 'test@2023';
mysql>grant replication slave on *.* to 'repl_user'@'192.168.188.%';
mysql>flush privileges;

show master status; #去31上查看二进制日志信息

根据查到的信息,再继续执行

File :当前正在记录的二进制日志文件
Position :记录偏移量,日志 mysql-bin.000008 所记录到的位置。
Binlog_Do_DB :要记录日志的数据库
Binlog_Ignore_DB :不记录日志的数据库
Executed_Gtid_Set :已执行的事务ID

CHANGE MASTER TO
       MASTER_HOST='192.168.188.31',
       MASTER_USER='repl_user',
       MASTER_PORT = 3306,       
       MASTER_PASSWORD='test@2023',
       MASTER_LOG_FILE='mysql-bin-31.000002',
       MASTER_LOG_POS=157;

说明:
    MASTER_HOST 主节点ip
    MASTER_USER 用户名
    MASTER_PORT  端口
    MASTER_PASSWORD 密码
    MASTER_LOG_FILE 31服务正在记录的二进制日志文件(实时获取)
    MASTER_LOG_POS  31服务记录二进制日志的偏移量(实时获取) 
start slave;  #启动主从复制
       
show slave status\G;  #查看从库状态

三、在188.31 数据库 设置同步账号与密码

mysql>create user 'repl_user'@'192.168.188.%' identified by 'test@2023';
mysql>grant replication slave on *.* to 'repl_user'@'192.168.188.%';
mysql>flush privileges;

show master status; 去30上查看二进制日志信息

根据查到的信息,再继续执行

CHANGE MASTER TO
       MASTER_HOST='192.168.188.30',
       MASTER_USER='repl_user',
       MASTER_PORT = 3306,
       MASTER_PASSWORD='test@2023',
       MASTER_LOG_FILE='mysql-bin-30.000001',
       MASTER_LOG_POS=891;       
说明:
    MASTER_HOST 主节点ip
    MASTER_USER 用户名
    MASTER_PORT  端口
    MASTER_PASSWORD 密码
    MASTER_LOG_FILE   30服务正在记录的二进制日志文件(实时获取)
    MASTER_LOG_POS   30服务记录二进制日志的偏移量(实时获取)
start slave;  #启动主从复制
       
show slave status\G;  #查看从库状态

四、分别重启两台数据库服务

查看同步的信息并进行相关测试。

创建用户,数据库,表,数据看是否能正常互相同步

show slave status \G;


参考链接:

https://www.jianshu.com/p/50b9446d77f4