MYSQL主主配置

主主复制:两个节点都可以更新数据,并且互为主从

容易产生的问题:数据不一致;慎用

优势:相对于一主一从,如果主节点出现故障,无需对从做修改配置,另一个主从直接顶替(需要搭配代理)

主1配置:

1.修改mysql配置文件

[root@centos8 mysql]vim /etc/my.cnf.d/mariadb-server.cnf

[mysqld]

server-id=211                                      #设置唯一标识的server-id
log-bin                                                 #开启二进制日志
auto_increment_offset=1                    #设置自动增长起始点
auto_increment_increment=2              #设置自动增长步长

systemctl restart mariadb-server

 

2.查看二进制日志文件及位置,用此位置的二进制文件可以不用在从上创建账号

MariaDB [(none)]> show master logs;
+--------------------+-----------+
| Log_name | File_size |
+--------------------+-----------+
| mariadb-bin.000001 | 360 |
+--------------------+-----------+
1 row in set (0.000 sec)

 

3.创建复制账号

MariaDB [(none)]> grant replication slave on *.* to repluser@'10.0.0.%' identified by '123456';  #创建一个用于主从复制的账号

 

 

主2配置:

1.修改mysql配置文件

[root@centos8 mysql]vim /etc/my.cnf.d/mariadb-server.cnf

[mysqld]

server-id=212                                      #设置唯一标识的server-id
log-bin                                                 #开启二进制日志
auto_increment_offset=2                    #设置自动增长起始点
auto_increment_increment=2              #设置自动增长步长

systemctl restart mariadb-server

 

2.查看二进制日志文件及位置

MariaDB [(none)]> show master logs;

+--------------------+-----------+
| Log_name | File_size |
+--------------------+-----------+
| mariadb-bin.000001 | 555 |
| mariadb-bin.000002 | 367 |
| mariadb-bin.000003 | 344 |
+--------------------+-----------+
3 rows in set (0.000 sec)

 

3.配置关于主1复制的相关信息

MariaDB [(none)]>

CHANGE MASTER TO
MASTER_HOST='10.0.0.211',
MASTER_USER='repluser',
MASTER_PASSWORD='123456',
MASTER_PORT=3306,
MASTER_LOG_FILE='mariadb-bin.000001',
MASTER_LOG_POS=360;

 

主1配置:

配置关于主1复制的相关信息,实现互相复制

MariaDB [(none)]>

CHANGE MASTER TO
MASTER_HOST='10.0.0.212',
MASTER_USER='repluser',
MASTER_PASSWORD='123456',
MASTER_PORT=3306,
MASTER_LOG_FILE='mariadb-bin.000004',
MASTER_LOG_POS=344;

 

此处配置slave时发现了一个问题:start slave 后查看show slave status\G;会一直报错

Last_IO_Error: Got fatal error 1236 from master when reading data from binary log: 'Could not find first log file name in binary log index file'

敲入一下命令即可解决

stop slave;

reset slave;

start slave;

 

该模式在早期的时候同时创建数据库时会出现报错,新的mysql已经避免了此问题

该模式因为设置了自动增长,所以在表钟新增记录时也不会出现问题,但如果两侧同时指定主键一样时就不行了

 

posted @ 2020-08-30 15:51  金金金丶  阅读(329)  评论(0)    收藏  举报