3、Mysql 8.0 主主复制配置

参考:https://www.alessandronuccio.it/2021/01/08/mysql-8-master-master-replication/

1、环境设定

    CentOS 8.0

    MySQL 8.0

    服务器IP:节点A:192.168.25.170  节点B:192.168.25.171

2、设置防火墙

    关闭或开放3306端口

#systemctl stop firewalld

3、配置conf文件

#vim /etc/my.cnf

在A节点上添加

bind-address = 192.168.25.170

server-id = 1

log_bin = mysql-bin

在B节点上添加

bind-address = 192.168.25.171

server-id = 2

log_bin = mysql-bin

重启节点:#systemctl restart mysqld.service

4、创建复制的用户

在A节点上添加用户并授权

#mysql -uroot -p

mysql>CREATE USER 'replica'@'192.168.25.171' IDENTIFIED BY 'R3plic4$';

mysql>ALTER USER 'replica'@'192.168.25.171' IDENTIFIED WITH mysql_native_password BY 'R3plic4$';

mysql>grant replication slave on *.* to replica@192.168.25.171;

在B节点上添加用户并授权

#mysql -uroot -p

mysql>CREATE USER 'replica'@'192.168.25.170' IDENTIFIED BY 'R3plic4$';

mysql>ALTER USER 'replica'@'192.168.25.170' IDENTIFIED WITH mysql_native_password BY 'R3plic4$';

mysql>grant replication slave on *.* to replica@192.168.25.170;

5、A节点作为主节点,配置A到B的复制

查看A节点的master信息

mysql>show master status\G;

mysql> show master status\G;

*************************** 1. row ***************************

            File: binlog.000003

        Position: 156

    Binlog_Do_DB:

Binlog_Ignore_DB:

Executed_Gtid_Set:

1 row in set (0.00 sec)

ERROR:

No query specified

在B节点上设置从节点,以下在B节点上执行

mysql>stop slave;

CHANGE MASTER TO

MASTER_HOST='192.168.25.170',

MASTER_USER='replica' ,

MASTER_PASSWORD='R3plic4$',

MASTER_LOG_FILE='mysql-bin.000001',

MASTER_LOG_POS=1019;

mysql>start slave;

mysql>show slave status\G;    查看从节点的信息

Slave_IO_State:Waiting for master to send eventMaster_Host:192.168.25.170Slave_IO_Running:YesSlave_SQL_Running:Yes

6、B节点作为主节点,配置B到A的复制

查看B节点的master信息

mysql>show master status\G;

mysql> show master status\G;

************************** 1. row ***************************

            File: binlog.00000

        Position: 1020

    Binlog_Do_DB:

Binlog_Ignore_DB:

Executed_Gtid_Set:

1 row in set (0.00 sec)

ERROR:

No query specified

在A节点上设置从节点,以下在A节点上执行

mysql>stop slave;

CHANGE MASTER TO

MASTER_HOST='192.168.25.171',

MASTER_USER='replica' ,

MASTER_PASSWORD='R3plic4$',

MASTER_LOG_FILE='mysql-bin.000001',

MASTER_LOG_POS=1020;

mysql>start slave;

mysql>show slave status\G;    查看从节点的信息

Slave_IO_State:Waiting for master to send eventMaster_Host:192.168.25.171Slave_IO_Running:YesSlave_SQL_Running:Yes

7、测试

可以复制针对数据库、表、数据的操作。

创建数据库、创建表、插入数据。并在两边查看是否都有。

8、问题

MySQL主主复制,实际上是主动读,不是主动推,因此会有数据的延迟。不能用于同时写入和同时读取。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容