MySQL配置多主复制的实现步骤

2025-08-11 10:50

本文主要是介绍MySQL配置多主复制的实现步骤,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

《MySQL配置多主复制的实现步骤》多主复制是一种允许多个MySQL服务器同时接受写操作的复制方式,本文就来介绍一下MySQL配置多主复制的实现步骤,具有一定的参考价值,感兴趣的可以了解一下...

多主复制(Multi-Master Replication)是一种允许多个mysql服务器同时接受写操作的复制方式。MySQL提供了一种名为“组复制”(Group Replication)的功能,可以实现多主复制,并且具有高可用性和一致性。

以下是详细配置MySQL多主复制的步骤和示例代码。

1. 环境准备

假设我们有三台MySQL服务器:

  • 主服务器1 (Master1):192.168.1.1
  • 主服务器2 (Master2):192.168.1.2
  • 主服务器3 (Master3):192.168.1.3

2. 配置每台服务器

2.1 修改每台服务器的配置文件

编辑每台服务器的my.cnf文件,添加以下配置:

[mysqld]
server-id = 1                  # 每个服务器的唯一ID,确保每台服务器的ID不同
log-bin = mysql-bin            # 启用二进制日志
binlog-format = row            # 使用行格式的二进制日志
plugin-load = group_replication.so     # 加载组复制插件
group_replication_group_name = "aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee"    # 组的唯一标识符
group_replication_staNEOwekurt_on_boot = OFF   # 在启动时不自动加入组
group_replication_local_address = "192.168.1.1android:33061"  # 本地服务器地址和端口
group_replication_group_seeds = "192.168.1.1:33061,192.168.1.2:33061,192.168.1.3:33061"  # 所有成员的地址和端口
group_replication_bootstrap_group = OFF  # 仅用于第一个启动的服务器
group_replication_single_primary_mode = OFF  # 允许多主模式

确保每台服务器的server-idgroup_replication_local_address唯一且正确。

3. 安装和配置插件

在每台服务器上安装组复制插件:

INSTALL PLUGIN group_replication SONAME 'group_replication.so';

4. 启动组复制

4.1 在第一台服http://www.chinasem.cn务器上启动组复制

在第一台服务器(Master1)上,设置group_replication_bootstrap_groupON以引导组:

SET GLOBAL group_replication_bootstrap_phpgroup = ON;
START GROUP_REPLICATION;
SET GLOBAL group_replication_bootstrap_group = OFF;

4.2 在其他服务器上加入组

在其他服务器(Master2和Master3)上,直接启动组复制:

START GROUP_REPLICATION;

5. 验证组复制

在每台服务器上检查组复制状态:

SELECT * FROM performance_schema.replication_group_members;

你应该看到所有成员都在组中,并且状态为ONLINE

示例

假设我们在每台服务器上创建一个数据库和表,并插入一些数据:

CREATE androidDATABASE test_db;
USE test_db;
CREATE TABLE test_table (
    id INT AUTO_INCREMENT PRIMARY KEY,
    name VARCHAR(50)
);
INSERT INTO test_table (name) VALUES ('test_name1');

在其他服务器上检查是否能看到这些数据:

USE test_db;
SELECT * FROM test_table;

你应该能够在所有服务器上看到相同的数据。

小结

通过以上步骤,你已经成功配置了MySQL的多主复制。组复制提供了一种强大且灵活的解决方案,允许多个服务器同时接受写操作,并提供高可用性和一致性。确保按步骤进行配置,并在生产环境中进行充分测试,以确保系统的稳定性和高效运行。

到此这篇关于MySQL配置多主复制的实现步骤的文章就介绍到这了,更多相关MySQL 多主复制内容请搜索China编程(www.chinasem.cn)以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程China编程(www.chinasem.cn)!

这篇关于MySQL配置多主复制的实现步骤的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1155669

相关文章

mysql8.0.43使用InnoDB Cluster配置主从复制

《mysql8.0.43使用InnoDBCluster配置主从复制》本文主要介绍了mysql8.0.43使用InnoDBCluster配置主从复制,文中通过示例代码介绍的非常详细,对大家的学习或者... 目录1、配置Hosts解析(所有服务器都要执行)2、安装mysql shell(所有服务器都要执行)3、

通过React实现页面的无限滚动效果

《通过React实现页面的无限滚动效果》今天我们来聊聊无限滚动这个现代Web开发中不可或缺的技术,无论你是刷微博、逛知乎还是看脚本,无限滚动都已经渗透到我们日常的浏览体验中,那么,如何优雅地实现它呢?... 目录1. 早期的解决方案2. 交叉观察者:IntersectionObserver2.1 Inter

Spring Gateway动态路由实现方案

《SpringGateway动态路由实现方案》本文主要介绍了SpringGateway动态路由实现方案,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随... 目录前沿何为路由RouteDefinitionRouteLocator工作流程动态路由实现尾巴前沿S

JavaScript对象转数组的三种方法实现

《JavaScript对象转数组的三种方法实现》本文介绍了在JavaScript中将对象转换为数组的三种实用方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友... 目录方法1:使用Object.keys()和Array.map()方法2:使用Object.entr

k8s中实现mysql主备过程详解

《k8s中实现mysql主备过程详解》文章讲解了在K8s中使用StatefulSet部署MySQL主备架构,包含NFS安装、storageClass配置、MySQL部署及同步检查步骤,确保主备数据一致... 目录一、k8s中实现mysql主备1.1 环境信息1.2 部署nfs-provisioner1.2.

Java高效实现PowerPoint转PDF的示例详解

《Java高效实现PowerPoint转PDF的示例详解》在日常开发或办公场景中,经常需要将PowerPoint演示文稿(PPT/PPTX)转换为PDF,本文将介绍从基础转换到高级设置的多种用法,大家... 目录为什么要将 PowerPoint 转换为 PDF安装 Spire.Presentation fo

Java集合之Iterator迭代器实现代码解析

《Java集合之Iterator迭代器实现代码解析》迭代器Iterator是Java集合框架中的一个核心接口,位于java.util包下,它定义了一种标准的元素访问机制,为各种集合类型提供了一种统一的... 目录一、什么是Iterator二、Iterator的核心方法三、基本使用示例四、Iterator的工

MySQL中VARCHAR和TEXT的区别小结

《MySQL中VARCHAR和TEXT的区别小结》MySQL中VARCHAR和TEXT用于存储字符串,VARCHAR可变长度存储在行内,适合短文本;TEXT存储在溢出页,适合大文本,下面就来具体的了解... 目录一、VARCHAR 和 TEXT 基本介绍1. VARCHAR2. TEXT二、VARCHAR

springboot依靠security实现digest认证的实践

《springboot依靠security实现digest认证的实践》HTTP摘要认证通过加密参数(如nonce、response)验证身份,避免明文传输,但存在密码存储风险,相比基本认证更安全,却因... 目录概述参数Demopom.XML依赖Digest1Application.JavaMyPasswo

Java 线程池+分布式实现代码

《Java线程池+分布式实现代码》在Java开发中,池通过预先创建并管理一定数量的资源,避免频繁创建和销毁资源带来的性能开销,从而提高系统效率,:本文主要介绍Java线程池+分布式实现代码,需要... 目录1. 线程池1.1 自定义线程池实现1.1.1 线程池核心1.1.2 代码示例1.2 总结流程2. J