mysql的主主复制又叫 双主复制
都启动中继日志,都启动二进制日志,相互备份,互为主从。
192.168.0.10 主节点1
192.168.0.33 主节点2
myql版本:mysql-5.7.27
配置防火墙,运行两主节点的能够互相访问对方的3306端口。
1:192.168.0.10的mysql配置文件增加以下内容
server-id = 10
auto-increment-offset = 1
auto-increment-increment = 2
binlog_format = mixed
skip_name_resolve= ON
relay_log = relay.log
log_bin=bin.log
innodb_file_per_table=ON
2:192.168.0.33的mysql配置文件增加以下内容
server-id = 33
auto-increment-offset = 2
auto-increment-increment = 2
binlog_format = mixed
skip_name_resolve= ON
relay_log = relay.log
log_bin=bin.log
innodb_file_per_table=ON
3:启动 主节点1,主节点2 的mysql 服务,并登陆mysql
4:为192.168.0.10 创建一个复制账号
GRANT REPLICATION SLAVE,REPLICATION client ON *.* to 'repluser'@'192.168.1.10' identified by '123';
5:为192.168.0.33 创建一个复制账号
GRANT REPLICATION SLAVE,REPLICATION client ON *.* to 'repluser'@'192.168.1.33' identified by '123';
6: 查看192.168.0.10的log_bin日志节点信息
7:查看 192.168.0.33 的 log_bin 日志节点信息
8:设置192.168.0.10的master节点
change master to master_host='192.168.1.33',master_user='repluser',master_password='123',master_log_file='bin.000016',master_log_pos=1144;
9:设置192.168.0.198的master节点
change master to master_host='192.168.1.10',master_user='repluser',master_password='123',master_log_file='bin.000015',master_log_pos=1951;
10:分别启动主节点1,主节点2的slave线程
start slave;
有可能会有权限问题,节点1用户登录不了节点2数据库之类的,可按以下解决
grant all privileges on *.* to 'repluser'@'%' identified by '123';
FLUSH PRIVILEGES;
11:分别查看slave状态
show slave status\G;
两个Yes,至此, 两主节点的相互复制的配置设置完成。
1:在192.168.0.10 创建数据库 repldb10;
create database repl10;
2:在192.168.0.33 创建数据库 repldb33;
create database repl33;
3:在 192.168.0.196 查看数据库是否同步。
show databases;
4:在 192.168.0.198 查看数据库是否同步。
show databases;