搭建环境
DB1:Redhat7、MySQL8、10.0.30.121 hostname:localhost.localdomain
DB1:Redhat7、MySQL8、10.0.30.122 hostname:localhost.localdomain
VIP:10.0.30.130
先配置主主同步
1、修改mysql的配置文件
首先修改DB1主机的配置文件,在/etc/my.cnf文件中添加[mysqld]及以下内容
[root@localhost ~]# vim /etc/my.cnf
server-id = 1 #节点标示,主从节点不能相同,必须全局唯一
log-bin=mysql-bin #开启mysql的binlog日志功能
然后修改DB2主机的配置文件,
[root@122 ~]# vim /etc/my.cnf
server-id = 2
log-bin=mysql-bin
最后分别重启DB1和DB2使配置生效
创建复制用户并授权
注:在执行主主互备之前要保证两台server上数据一致
首先在DB1的mysql库中创建复制用户
CREATE USER 'lqqslave'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
GRANT REPLICATION SLAVE ON *.* TO 'lqqslave'@'%';
#生效 flush privileges 命令本质上的作用是将当前user和privilige表中的用户信息/权限设置从mysql库(MySQL数据库的内置库)中提取到内存里
flush privileges;
mysql> show master status;
+------------------+----------+--------------+------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000004 | 271 | | |
+------------------+----------+--------------+------------------+
1 row in set (0.00 sec)
然后在DB2的mysql库中将DB1设为自己的主服务器
mysql> change master to \
-> master_host='10.0.30.121',
-> master_user='lqqslave',
-> master_password='123456',
-> master_log_file='mysql-bin.000004',
-> master_log_pos=271;
Query OK, 0 rows affected (0.07 sec)
这里需要注意master_log_file和master_log_pos两个选项,这两个选项的值是在DB1上通过“show master status” 查询到的结果
接着在DB2上启动slave服务
mysql> start slave;
Query OK, 0 rows affected (0.01 sec)
下面查看DB2上slave的运行状态,
mysql> sho