mysql笔记:24. 主从同步环境搭建

文章目录

  • 主从同步的基本原理
  • 主从同步的搭建步骤
    • 1. 环境准备
    • 2. 配置主服务器(Master)
    • 3. 配置从服务器(Slave)
    • 4. 测试配置
    • 5. 常见故障
      • 5.1. 主从服务器上的MySQL版本不一致导致失败?
      • 5.2. Slave_IO_Running状态异常?
      • 5.3. 配置正确,但同步失败?
      • 5.4. 断电重启后同步中断?

MySQL的主从同步(Master-Slave Replication)是一个常用的数据备份和恢复策略,它允许在两个或多个数据库服务器之间实现数据同步。这种方案不仅可以提高数据备份的效率,还可以实现读写分离,从而提高整个系统的性能和可靠性。

主从同步的基本原理

MySQL主从同步是基于二进制日志(binlog)实现的。主数据库将数据变更记录在binlog中,而从数据库则通过读取binlog来获取这些变更,并将它们应用到自己的数据库中。这样,从数据库就可以保持与主数据库的数据一致性。
在这里插入图片描述

主从同步的搭建步骤

1. 环境准备

  • 两台服务器
    一台作为主服务器(Master),一台作为从服务器(Slave)
  • 均安装MySQL8.0
  • 均安装Navicat[可选项]
    使用数据库连接工具Navicat可以便捷的连接数据库,从而方便操作。

2. 配置主服务器(Master)

编辑主服务器的MySQL配置文件,通常位于/etc/mysql/mysql.conf.d/mysqld.cnf/etc/my.cnf,添加下列配置项:

[mysqld]
server-id=1
log-bin=mysql-binlog
binlog-do-db=your-database-name
gtid_mode=ON
enforce_gtid_consistency=ON
  • server-id:MySQL服务器的唯一ID,主从服务器ID不能相同
  • log-bin:启用二进制日志,记录所有数据库的修改信息
  • binlog-do-db:指定需要同步的数据库名(可选配置)
  • gtid_mode:GTID 是一个全局唯一的事务标识符,用于标识数据库集群中的事务。启用 GTID 后,每个事务都会被分配一个唯一的 GTID。
  • enforce_gtid_consistency:当启用 GTID 后,该选项用于强制要求从库只能复制具有与主库一致的 GTID 链的事务,以确保数据一致性。

重启MySQL服务使配置生效。
然后,登录MySQL并执行以下命令:

CREATE USER 'replication_user'@'%' identified by 'password';
GRANT REPLICATION SLAVE ON *.* TO 'replication_user'@'%';
FLUSH PRIVILEGES;
FLUSH TABLES WITH READ LOCK;
SHOW MASTER STATUS;
  • FLUSH PRIVILEGES:刷新权限
  • FLUSH TABLE WITH READ LOCK:锁定所有表,以便获取当前的二进制日志位置
  • SHOW MASTER STATUS:查看主服务器状态

3. 配置从服务器(Slave)

编辑从服务器的MySQL配置文件,添加下列配置项:

[mysqld]  
server-id=2
relay-log=mysql-relay-bin
replicate-do-db=your_database_name
  • relay-log:中继日志,从服务器用于存储接收到的二进制日志事件。
  • replicate-do-db:指定需要同步的数据库名(可选配置)。

重启MySQL服务以使配置生效。然后,登录MySQL并执行以下命令:

CHANGE MASTER TO   MASTER_HOST='master_server_ip',MASTER_USER='replication_user',MASTER_PASSWORD='password',MASTER_LOG_FILE='recorded_log_file',MASTER_LOG_POS=recorded_log_pos;START SLAVE; SHOW SLAVE STATUS\G;
  • CHANGE MASTER TO:配置从服务器连接到主服务器的信息。
  • START SLAVE:启动从服务器的复制进程。
  • SHOW SLAVE STATUS:查看从服务器的复制状态。确保Slave_IO_RunningSlave_SQL_Running的值都是Yes。

4. 测试配置

在主服务器上创建一个新的表并插入一些数据,然后检查从服务器是否已同步这些更改。

5. 常见故障

5.1. 主从服务器上的MySQL版本不一致导致失败?

解决:卸载并重新安装相同版本的MySQL服务器。

5.2. Slave_IO_Running状态异常?

解决:检查主服务器防火墙配置,放行从服务器相关连接请求或直接关闭主服务器的防火墙(仅限开发环境)。

5.3. 配置正确,但同步失败?

解决:检查bin-log及relay-log文件及其目录的权限,确保配置权限适当。

5.4. 断电重启后同步中断?

解决:检查上述配置及服务状态,修复异常项。

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

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

相关文章

Mybatis之自定义映射resultMap

学习的最大理由是想摆脱平庸,早一天就多一份人生的精彩;迟一天就多一天平庸的困扰。各位小伙伴,如果您: 想系统/深入学习某技术知识点… 一个人摸索学习很难坚持,想组团高效学习… 想写博客但无从下手,急需…

深度学习之本地部署大模型ChatGLM3-6B【大模型】【报错】

文章目录 0.前言1.模型下载2.配置环境2.1 下载项目文件2.2 配置环境 3.开始推理4.总结 0.前言 本博客将介绍ChatGLM3-6B大模型在Ubuntu上的本地部署教程 1.模型下载 由于毛毛张的服务器服务无法科学上网,所以模型的相关文件必须现在本地下载好,再上传到…

抖店怎么入驻?2024最新入驻流程,新手必看!

我是电商珠珠 最近,很多新手都来问我,入驻抖店的话有没有什么学习资料啊,入驻都需要什么资质啊等等,我也整理了一份,新手入门必备资料,需要的可以来找我拿。 下面我来说说抖店的入驻资质,以及…

C++ —— 内存管理

目录 1. C内存分布 2. C 内存管理方式 2.1 new 和 delete 操作内置类型 2.2 new 和 delete 操作自定义类型 3. operator new与operator delete函数 4. new和delete的实现原理 5. malloc/free 和 new/delete 的区别 1. C内存分布 首先看一段代码: int globalV…

Vue 3响应式系统详解:ref、toRefs、reactive及更多

🌟 前言 欢迎来到我的技术小宇宙!🌌 这里不仅是我记录技术点滴的后花园,也是我分享学习心得和项目经验的乐园。📚 无论你是技术小白还是资深大牛,这里总有一些内容能触动你的好奇心。🔍 &#x…

停车管理系统asp.net+sqlserver

停车管理系统asp.netsqlserver 说明文档 运行前附加数据库.mdf(或sql生成数据库) 主要技术: 基于asp.net架构和sql server数据库, 功能模块: 停车管理系统asp.net sqlserver 用户功能有菜单列表 我的停车记录 专…

赋能数据收集:从机票网站提取特价优惠的JavaScript技巧

背景介绍 在这个信息时代,数据的收集和分析对于旅游行业至关重要。在竞争激烈的市场中,实时获取最新的机票特价信息能够为旅行者和旅游企业带来巨大的优势。 随着机票价格的频繁波动,以及航空公司和旅行网站不断推出的限时特价优惠&#xff…

汽车KL15、KL30、ACC的区别

文章目录 前言一、KL30是什么?二、KL15是什么?KL15信号的演变 三、为啥用KL15、KL30呢? 前言 相信刚接触汽车电子的伙伴都会有一个疑惑,什么是KL15?什么是KL30? 内心一脸懵逼…… KL是德语Klemme的缩写,指的是ECU的…

【Flutter 面试题】Flutter如何进行本地存储和缓存数据?

【Flutter 面试题】Flutter如何进行本地存储和缓存数据? 文章目录 写在前面口述回答补充说明实际案例完整代码示例运行结果详细说明 写在前面 🙋 关于我 ,小雨青年 👉 CSDN博客专家,GitChat专栏作者,阿里云…

两个免费的wordpress主模板

wordpress免费网站主题 蓝色高端大气上档次的wordpress免费网站主题,首页大图wordpress模板。 https://www.wpniu.com/themes/31.html WP免费模板 用粉色高端大气上档次的WP免费模板,建个网站也不错的。 https://www.wpniu.com/themes/16.html

npm ERR! code ELIFECYCLE 解决办法

npm ERR! code ELIFECYCLE 解决办法 问题分析可能原因解决方法 问题 使用Vue脚手架构建项目的时候出现npm ERR! code ELIFECYCLE 分析可能原因 vue-cli-service 并没有加入到环境变量里 解决方法 ./node_modules/.bin/vue-cli-service serve

Day74:WEB攻防-机制验证篇重定向发送响应状态码跳过步骤验证码回传枚举

目录 验证码突破-回传显示&规律爆破 某目标回显显示 某APP验证码爆破 验证目标-重定向用户&重定向发送 某CMS重定向用户 某CMS重定向发送 验证逻辑-修改响应包&跳过步骤URL 某APP修改响应包 某APP跳过步骤URL 实战SRC验证逻辑挖掘分享案例 短信验证码回…

SpringCloud Alibaba Nacos 服务注册和配置中心

一、前言 接下来是开展一系列的 SpringCloud 的学习之旅,从传统的模块之间调用,一步步的升级为 SpringCloud 模块之间的调用,此篇文章为第十二篇,即介绍 SpringCloud Alibaba Nacos 服务注册和配置中心。 二、Nacos 简介 2.1 为…

HarmonyOS(鸿蒙)应用开发——(一)

目录 1 创建hellopro项目 2 了解ArkTS 3 了解ArkTS的组件 4 组件介绍 4.1 常用基础组件: 4.1.1 Text 4.1.2 Button 4.1.3 TextInput 4.2 容器组件 4.2.1 Column 4.2.2 Row 5 案例——实现一个简易登录页面 5.1 在实现预览效果之前,我们…

MCU技术的创新浪潮与产业变革

MCU技术的创新浪潮与产业变革 一、MCU技术的创新发展 MCU,即微控制器,作为现代电子设备的核心部件,一直在不断地创新与发展。随着科技的进步,MCU的性能得到了极大的提升,功能也越来越丰富。从8位到32位,再…

【SpringMVC】知识汇总

SpringMVC 短暂回来,有时间就会更新博客 文章目录 SpringMVC前言一、第一章 SpingMVC概述二、SpringMVC常用注解1. Controller注解2. RequestMapping注解3. ResponseBody注解4. RequestParam5. EnableWebMvc注解介绍6. RequestBody注解介绍7. RequestBody与RequestP…

echart多折线图堆叠 y轴和实际数据不对应

当使用 ECharts 绘制堆叠折线图时,有时会遇到 y 轴与实际数据不对应的问题。 比如明明值是50,但折线点在y轴的对应点却飙升到了二百多 解决办法: 查看了前端代码发现在echart的图表中有一个‘stack’的属性,尝试把他删除之后y轴的…

探索vLLM:释放超大规模语言模型的力量

背景 vLLM是伯克利大学LMSYS组织开源的大语言模型高速推理框架,旨在极大地提升实时场景下的语言模型服务的吞吐与内存使用效率。vLLM是一个快速且易于使用的库,用于 LLM 推理和服务,可以和HuggingFace 无缝集成。vLLM利用了全新的注意力算法「PagedAttention」,有效地管理注…

分布式游戏服务器

1、概念介绍 分布式游戏服务器是一种专门为在线游戏设计的大型系统架构。这种架构通过将游戏服务器分散部署到多台计算机(节点)上,实现了数据的分散存储和计算任务的并行处理。每个节点都负责处理一部分游戏逻辑和玩家请求,通过高…

应急响应靶机训练-Web3题解

前言 接上文,应急响应靶机训练-Web3。 前来挑战!应急响应靶机训练-Web3 题解 首先登录用户administrator 寻找隐藏用户 找到隐藏用户hack6618$ 然后去找apache的日志文件 分析得出两个IP地址 192.168.75.129 192.168.75.130 然后更换hack6618$的…