前言
大家好,我是 沐风晓月 本文收录于《数据库入门到精通系列》专栏, 更多内容可以关注我的csdn博客。
本文主要讲解MySQL主主架构实战,在开始之前需要根据下面的提示来配置环境:
- Linux基础命令不熟参考: 《linux基本功-基础命令实战》专栏
- MySQL8没有安装参考:《提高MySQL数据可靠性的必备技能:基于MySQL8实现主从同步》
本次实验需要提前配置好两台安装好MySQL8的服务器
文章目录

一. 实验环境
架构 | 版本 | IP | hostname |
---|---|---|---|
master1 | CentOS7.6 | 192.168.1.41 | master41 |
master2 | CentOS7.6 | 192.168.1.42 | master42 |
架构图如下:
数据库密码: Root!2#admin
二. 实验配置
2.1 数据库配置文件设置
要实现主主复制,就是在主从复制的基础上配置相互为主从。 这里很容易需要对两台服务器反复配置,很容易搞乱。
2.1.1 对数据库master1进行配置:
vim /etc/my.cnf
[mysqld]server-id = 1
log-bin=mysql-bin
auto_increment_increment=2
auto_increment_offset=1
replicate-do-db=test_db
对上文代码进行注释:
-
server-id = 1 #任意自然n,只需要保证两台mysql主机不重复就可以
-
log-bin=mysql-bin #开启二进制日志
-
auto_increment_increment=2 #步进值auto_imcrement 。一般有n台主mysql就填n
-
auto_increment_offset=1 #起始值,一般填写第n台主机mysql.此时为第一台主 mysql
-
#binlog-ignore=mysql #忽略mysql库,可以不填写
-
#binlog-ignore=infomation_schema #忽略information_schema库,一般不填写
-
replicate-do-db=test_db #指定同步的数据库,不填写则默认所有的数据库
配置完成后,重启数据库
2.1.2 修改master2 的配置文件
在 配置文件[mysqld]模块下添加以下内容:
vim /etc/my.cnf
server-id = 2
log-bin=mysql-bin
auto_increment_increment=2
auto_increment_offset=2
replicate-do-db=test_db