三、創建同步賬號并授權
創建主主同步賬號repl_user和主從同步賬號slave_sync_user
主1、主2 數據庫:
mysql> CREATE USER 'repl_user'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
Query OK, 0 rows affected (0.03 sec)
?
mysql> CREATE USER 'slave_sync_user'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
Query OK, 0 rows affected (0.01 sec)
?
mysql> GRANT REPLICATION SLAVE ON *.* TO 'repl_user'@'%';
Query OK, 0 rows affected (0.00 sec)
?
mysql> GRANT REPLICATION SLAVE ON *.* TO 'slave_sync_user'@'%';
Query OK, 0 rows affected (0.00 sec)
四、配置主從同步
1、主1 -->? 從1
主1 mysql 下:
show master status;
記住 binlog文件 和 偏移量,后面會用到
從1 mysql 下:
CHANGE MASTER TO MASTER_HOST='192.168.168.224', MASTER_USER='slave_sync_user', MASTER_PASSWORD='123456', MASTER_LOG_FILE='binlog.000003', MASTER_LOG_POS=952;
start slave;
show slave status \G;
遇到不是兩個 Yes (下面截圖這種情況)怎么辦,別慌,執行下面命令:
stop slave;
reset master;
然后再??CHANGE MASTER .....
2、主2 --> 從2
?主2 mysql 下:
show master status;
CHANGE MASTER TO MASTER_HOST='192.168.168.226', MASTER_USER='slave_sync_user', MASTER_PASSWORD='123456', MASTER_LOG_FILE='binlog.000004', MASTER_LOG_POS=356;
start slave;
show slave status \G;
3、主1 --> 主2
主1 mysql 下:
show master status;
?主2 mysql 下
CHANGE MASTER TO MASTER_HOST='192.168.168.224', MASTER_USER='repl_user', MASTER_PASSWORD='123456', MASTER_LOG_FILE='binlog.000003', MASTER_LOG_POS=952;
start slave;
show slave status \G;
?4、主2 --> 主1
主2 mysql 下
show master status;
主1 mysql 下:
CHANGE MASTER TO MASTER_HOST='192.168.168.226', MASTER_USER='repl_user', MASTER_PASSWORD='123456', MASTER_LOG_FILE='binlog.000004', MASTER_LOG_POS=156;
?
start slave;
show slave status \G;
五、測試
主1 mysql 下創建數據庫 mydb2,創建表 books,插入一條數據:
?
create database mydb2;
create table books(id int primary key auto_increment, name varchar(50));
insert into books(name) values("MySQL 8");
查看 主1 ?主2 從1 從2 ?是否同步生成數據庫、表、數據。
?
?