# mysql8双主双从搭建

> 来源：梦飞idc云平台 | 原文：https://www.mfisp.com/21006.html | 发布：2023-06-05 | 更新：2023-06-05 | 分类：建站教程

## 一、规划

 

提：需要准备四台服务器，每台服务器上安装了 mysql8 数据库。

 

规划：从 1 复制 主1 ，从 2 复制 主 2，主 1 复制 主 2，主 2 复制主 1，也就是 主 1 和主 2 互为主从。主1主2互为主从，是为了以下情景，主1挂了，主2自动升级为主数据库，当主1恢复后，主1则变成次主数据库。

 

举个案例：1、在主1创建了一个数据库，从1自动“复制”主1生成数据库，

 

2、因为主2也是主1 的从数据库，所以主2也“复制”主1生成数据库，

 

3、主2有了数据库，从2自动“复制”主2生成数据库；

 

最后，四台服务器数据库都创建了数据库。

 

## 二、修改 mysql 配置

 

主1 my.cnf 添加如下配置

 

# bin log 日志  
log-bin=/var/lib/mysql/binlog  
# 服务id  
server-id=1  
#主从复制忽略的数据库  
binlog-ignore-db=mysql  
binlog-ignore-db=information_schema  
#开启主从复制的数据库  
binlog-do-db=mydb2  
# bin log 日志格式  
#STATEMENT:记录主库执行的SQL复制到从库; 调用时间函数时会导致主从数据不一致  
#ROW:记录主库每一行的变化;效率低  
#MIXED:修复一些主从数据不一致情况;本地变量调用还会存在问题;@@hostname  
binlog_format=statement  
#二进制日志自动删除/过期的天数。默认值为0，表示不自动删除  
expire_logs_days=7  
#跳过主从复制中遇到的所有错误或指定类型的错误  
slave_skip_errors=1062  
#在作为从数据库时候，有写入操作也要更新二进制日志文件  
log-slave-updates  
#标识自增长字段每次递增的量，也就是步长  
auto-increment-increment=2  
#表示自增长从哪个数开始  
auto-increment-offset=1

 

主 2 my.cnf 添加如下配置

 

# bin log 日志  
log-bin=/var/lib/mysql/binlog  
# # 服务id  
server-id=3  
# #主从复制忽略的数据库  
binlog-ignore-db=mysql  
binlog-ignore-db=information_schema  
# #开启主从复制的数据库  
binlog-do-db=mydb2  
# # bin log 日志格式  
# #STATEMENT:记录主库执行的SQL复制到从库; 调用时间函数时会导致主从数据不一致  
# #ROW:记录主库每一行的变化;效率低  
# #MIXED:修复一些主从数据不一致情况;本地变量调用还会存在问题;@@hostname  
binlog_format=statement  
# #二进制日志自动删除/过期的天数。默认值为0，表示不自动删除  
expire_logs_days=7  
# #跳过主从复制中遇到的所有错误或指定类型的错误  
slave_skip_errors=1062  
# #在作为从数据库时候，有写入操作也要更新二进制日志文件  
log-slave-updates  
# #标识自增长字段每次递增的量，也就是步长  
auto-increment-increment=2  
# #表示自增长从哪个数开始  
auto-increment-offset=2

 

主1主2配置的不同地方在：server-id 和 auto-increment-offset

  

从1 my.cnf 添加如下配置

 

# 服务id  
server-id=2  
# #启用中继日志  
relay-log=mysql-relay

 

# 服务id  
server-id=2  
# #启用中继日志  
relay-log=mysql-relay

 

从2 my.cnf 添加如下配置

 

# 服务id  
server-id=4  
# #启用中继日志  
relay-log=mysql-relay

---
本页由 梦飞idc云平台（https://www.mfisp.com）提供。站点导航见 https://www.mfisp.com/llms.txt
