centos系统mysql集群复制双主双从


文章目录

  • MySQL 双主双从集群
    • 一、 准备环境
    • 二、 配置主服务器
      • 1. 配置 MySQL 主服务器 1 (192.168.1.1)
      • 2. 配置 MySQL 主服务器 2 (192.168.1.2)
    • 三、配置从服务器
      • 1. 配置 MySQL 从服务器 1 (192.168.1.3)
      • 2. 配置 MySQL 从服务器 2 (192.168.1.4)
      • 3. 在主服务器 1 上配置复制到主服务器 2
      • 4. 在主服务器 2 上配置复制到主服务器 1
    • 四、 验证复制
    • 五、注意事项

MySQL 双主双从集群

一、 准备环境

确保您有四台服务器,每台服务器上都已经安装了 MySQL。假设服务器的 IP 地址如下:

  • 主服务器 1: 192.168.1.1
  • 主服务器 2: 192.168.1.2
  • 从服务器 1: 192.168.1.3
  • 从服务器 2: 192.168.1.4

二、 配置主服务器

1. 配置 MySQL 主服务器 1 (192.168.1.1)

编辑 MySQL 配置文件 my.cnf(位置通常在 /etc/my.cnf 或 /etc/mysql/my.cnf),添加以下配置:

[mysqld]
server-id = 1
log_bin = mysql-bin
binlog_format = ROW
auto_increment_increment = 2
auto_increment_offset = 1
  • server-id:每个 MySQL 服务器的唯一 ID。
  • log_bin:启用二进制日志。
  • binlog_format:设置二进制日志格式为 ROW。
  • auto_increment_increment 和 auto_increment_offset:设置自动递增值的增量和偏移量,以便在主从同步中避免冲突。

重启 MySQL 服务以使配置生效:

sudo systemctl restart mysql

创建复制用户并授权:

#创建用户
CREATE USER 'repl'@'%' IDENTIFIED BY 'password';
#授予权限
GRANT REPLICATION SLAVE ON *.* TO 'repl'@'%';
FLUSH PRIVILEGES;

获取当前的二进制日志位置:

SHOW MASTER STATUS;

记下 FilePosition 值,稍后在从服务器的配置中会用到。

2. 配置 MySQL 主服务器 2 (192.168.1.2)

重复主服务器 1 的配置步骤,修改 server-id:

[mysqld]
server-id = 2
log_bin = mysql-bin
binlog_format = ROW
auto_increment_increment = 2
auto_increment_offset = 2

重启 MySQL 服务:

sudo systemctl restart mysql

创建复制用户和授权(与主服务器 1 相同):

#创建用户
CREATE USER 'repl'@'%' IDENTIFIED BY 'password';
#授予权限
GRANT REPLICATION SLAVE ON *.* TO 'repl'@'%';
FLUSH PRIVILEGES;

获取当前的二进制日志位置:

SHOW MASTER STATUS;

记下 FilePosition 值。

三、配置从服务器

1. 配置 MySQL 从服务器 1 (192.168.1.3)

编辑 my.cnf 文件:

[mysqld]
server-id = 3
relay_log = mysql-relay-bin
log_bin = mysql-bin
binlog_format = ROW
auto_increment_increment = 2
auto_increment_offset = 1

重启 MySQL 服务:

sudo systemctl restart mysql

配置从服务器 1 复制 主服务器 1的数据:

CHANGE MASTER TO MASTER_HOST='192.168.1.1', MASTER_USER='repl', MASTER_PASSWORD='password', MASTER_LOG_FILE='mysql-bin.000001', MASTER_LOG_POS=1234;START SLAVE;

请根据主服务器提供的 FilePosition 值调整。

MASTER_LOG_FILE=‘File值’
MASTER_LOG_POS=Position值

2. 配置 MySQL 从服务器 2 (192.168.1.4)

重复从服务器 1 的配置步骤,修改 server-id

[mysqld]
server-id = 4
relay_log = mysql-relay-bin
log_bin = mysql-bin
binlog_format = ROW
auto_increment_increment = 2
auto_increment_offset = 2

重启 MySQL 服务:

sudo systemctl restart mysql

配置从服务器 2 复制 主服务器 2数据:

CHANGE MASTER TO MASTER_HOST='192.168.1.2', MASTER_USER='repl', MASTER_PASSWORD='password', MASTER_LOG_FILE='mysql-bin.000001', MASTER_LOG_POS=1234;
START SLAVE;

3. 在主服务器 1 上配置复制到主服务器 2

CHANGE MASTER TOMASTER_HOST='192.168.1.2',MASTER_USER='repl',MASTER_PASSWORD='password',MASTER_LOG_FILE='mysql-bin.000001',MASTER_LOG_POS=1234;
START SLAVE;

4. 在主服务器 2 上配置复制到主服务器 1

CHANGE MASTER TOMASTER_HOST='192.168.1.1',MASTER_USER='repl',MASTER_PASSWORD='password',MASTER_LOG_FILE='mysql-bin.000001',MASTER_LOG_POS=1234;
START SLAVE;

四、 验证复制

在每个从服务器上运行以下命令,检查复制状态:

SHOW SLAVE STATUS\G

确保 Slave_IO_RunningSlave_SQL_Running 都为 Yes,并且没有错误信息
在这里插入图片描述

五、注意事项

  1. 数据一致性:在配置双主复制之前,请确保主服务器上数据的一致性。
  2. 冲突解决:在双主双从配置中,可能会发生主服务器间的数据冲突。需要对应用程序设计和数据写入策略进行适当调整,以减少冲突。
  3. 监控:建议使用监控工具来实时跟踪复制状态和性能。
  4. 网络延迟:由于网络延迟和带宽问题,确保主服务器之间的同步不会影响性能。

以上步骤适用于 MySQL 5.7 及以上版本。根据实际环境和 MySQL 版本,某些配置项可能有所不同。

回到顶层

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/382591.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【接口测试】params传参与body传参区别

文章目录 一.params传参二.body传参三.两者区别说明 一.params传参 params传参一般用于get请求 params传参时,参数会附于URL后面以问号形式展示。 示例: http://ip地址:端口号/login?usernamexm&pwd111二.body传参 body传参一般用于post请求 body传参时需…

JavaScript(12)——内置对象

JavaScript内部提供的对象,包含各种属性和方法给开发者调用。 Math Math对象是JavaScript提供的一个“数学”对象 包含的方法有: random:生成0-1之间的随机数 ceil:向上取整 floor:向下取整 max:找最大数 min&#…

前置-Linux相关知识速记

linux Linux命令大全 [!IMPORTANT] chown-chmod-ls-chgrp-cdpwd-mkdir-rmdir-cp-rm-mv-cat-tac-nl-more-less-head-tail 应用领域 通常服务器使用 LAMP(Linux Apache MySQL PHP)或 LNMP(Linux Nginx MySQL PHP)组合。 目前…

STM32智能工业监控系统教程

目录 引言环境准备智能工业监控系统基础代码实现:实现智能工业监控系统 4.1 数据采集模块 4.2 数据处理与控制模块 4.3 通信与网络系统实现 4.4 用户界面与数据可视化应用场景:工业监控与优化问题解决方案与优化收尾与总结 1. 引言 智能工业监控系统通…

Chapter18 基于物理的渲染——Shader入门精要学习

Chapter18 基于物理的渲染 一、PBS理论和数学基础1.光是什么微表面模型 2.渲染方程3.精确光源4.双向反射分布函数 BRDF5.漫反射项(Lambert 模型)Lambertian BRDF为:Disney BRDF中漫反射项 6.高光反射项微面元理论BRDF的高光反射项①菲涅尔反射…

C# 委托函数 delegate

在C#中,委托(Delegate)是一种特殊的类型,它可以持有对方法的引用。 委托是实现事件的基础。事件本质上是多播委托,允许多个方法被触发 委托允许你将方法作为参数传递给其他方法,或者将方法作为返回值从方法…

Redis核心技术与实战学习笔记

Redis核心技术与实战学习笔记 最近想沉下心来看下redis,买了蒋德钧老师的《Redis 核心技术与实战》,这里记录一些学习笔记 希望能够坚持下去有想一起学习的童鞋,可以点击跳转到文章尾部获取学习资源,仅供学习不要用于任何商业用途!!! redis知识全景图 …

中断和EXIT原理介绍

中断和EXIT原理介绍 一、中断的介绍?二、EXIT的介绍1.EXIT作用2.EXIT的详情3.EXIT中AFIO复用的作用4.STM32中AFIO复用作用 一、中断的介绍? 二、EXIT的介绍 EXTI(Extern Interrupt)外部中断 1.EXIT作用 EXTI可以监测指定GPIO口…

编写SpringBoot的自定义starter包

starter项目 先来看一下Starter的官方解释: Spring Boot Starter 是一种方便的依赖管理方式,它封装了特定功能或技术栈的所有必要依赖项和配置,使得开发者可以快速地将这些功能集成到Spring Boot项目中。Spring Boot官方提供了一系列的Star…

OpenTeleVision复现及机器人迁移

相关信息 标题 Open-TeleVision: Teleoperation with Immersive Active Visual Feedback作者 Xuxin Cheng1 Jialong Li1 Shiqi Yang1 Ge Yang2 Xiaolong Wang1 UC San Diego1 MIT2主页 https://robot-tv.github.io/链接 https://robot-tv.github.io/resources/television.pdf代…

展馆导览系统架构解析,从需求分析到上线运维

在物质生活日益丰富的当下,人们对精神世界的追求愈发强烈,博物馆、展馆、纪念馆等场所成为人们丰富知识、滋养心灵的热门选择。与此同时,人们对展馆的导航体验也提出了更高要求,展馆导览系统作为一种基于室内外地图相结合的位置引…

NSSCTF-2021年SWPU联合新生赛

[SWPUCTF 2021 新生赛]finalrce 这道题目考察tee命令和转义符\ 这题主要是,遇到一种新的符号,"\"—转义符。我理解的作用就是在一些控制字符被过滤的时候,可以用转义符,让控制符失去原本的含义,变为字面量…

【数据结构 | 哈希表】一文了解哈希表(散列表)

😁博客主页😁:🚀https://blog.csdn.net/wkd_007🚀 🤑博客内容🤑:🍭嵌入式开发、Linux、C语言、C、数据结构、音视频🍭 🤣本文内容🤣&a…

Spring框架、02SpringAOP

SpringAOP 日志功能 基本方法 分析代码问题 目前代码存在两个问题 代码耦合性高:业务代码和日志代码耦合在了一起 代码复用性低:日志代码在每个方法都要书写一遍 问题解决方案 使用动态代理,将公共代码抽取出来 JDK动态代理 使用JDK动…

英迈中国与 Splashtop 正式达成战略合作协议

2024年7月23日,英迈中国与 Splashtop 正式达成战略合作协议,英迈中国正式成为其在中国区的战略合作伙伴。此次合作将结合 Splashtop 先进的远程桌面控制技术和英迈在技术服务与供应链管理领域的专业优势,为中国地区的用户带来更加安全的远程访…

IEDA怎么把springboot项目 启动多个

利用Idea提供的Edit Configurations配置应用参数。 点击Modify Options进行添加应用参数: 确保这里勾选

centos系统mysql主从复制(一主一从)

文章目录 mysql80主从复制(一主一从)一、环境二、服务器master1操作1.开启二进制日志2. 创建复制用户3. 服务器 slave1操作4. 在主数据库中添加数据 mysql80主从复制(一主一从) 一、环境 准备两台服务器,都进行以下操…

前端在浏览器总报错,且获取请求头中token的值为null

前端请求总是失败说受跨域请求影响,但前后端配置已经没有问题了,如下: package com.example.shop_manage_sys.config;import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Conf…

Java使用AsposePDF和AsposeWords进行表单填充

声明:本文为作者Huathy原创文章,禁止转载、爬取!否则,本人将保留追究法律责任的权力! 文章目录 AsposePDF填充表单adobe pdf表单准备引入依赖编写测试类 AsposeWord表单填充表单模板准备与生成效果引入依赖编码 参考文…

代理协议解析:如何根据需求选择HTTP、HTTPS或SOCKS5?

代理IP协议是一种网络代理技术,可以实现隐藏客户端IP地址、加速网站访问、过滤网络内容、访问内网资源等功能。常用的IP代理协议主要有Socks5代理、HTTP代理、HTTPS代理这三种。代理IP协议主要用于分组交换计算机通信网络的互联系统中使用,只负责数据的路…