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.mzph.cn/news/759905.shtml

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

相关文章

使用ollama + webui 运行任意大模型

安装ollama https://hub.docker.com/r/ollama/ollama docker run -d -v ~/Documents/work/softs/docker/ollama:/root/.ollama -p 11434:11434 --name ollama ollama/ollama验证安装 # 进入容器docker exec -it ollama bash # 运行大模型 ollama run llama2 # 发送请求&…

三级数据库技术考点(详解!!)

1、 答疑:【解析】分布式数据库系统按不同层次提供的分布透明性有:分片透明性;②位置透明性;③局部映像透明性,位置透明性是指数据分片的分配位置对用户是透明的,用户编写程序时只需 要考虑数据分片情况,不需要了解各分片在各个场地的分配情…

什么是物联网远程模块

在数字化和信息化的浪潮下,物联网技术正在以惊人的速度改变着我们的生活和生产方式。物联网远程模块,作为物联网技术的核心组件之一,正引领着这场变革。HiWoo Box就是这样一款出色的物联网远程模块,它通过支持远程透传、远程锁机、…

多进程数据库不适合作为hive的元数据库

简介 “今天发现一个比较奇怪的现象,因为博主不熟悉mysql,所以在安装hive的使用了postgresql作为hive的元数据库,在测试几个连接工具对hive进行链接,后面再测试的时候发现链接不上了,并且报错日志如下:” …

从回收站删除的文件如何恢复?图文详解(3个方法)!

“各位大佬!从回收站删除了重要的文件后,有什么方法可以恢复文件吗?快帮帮我吧!这些被删除的文件都是比较重要的!” 回收站作为电脑中的一个重要工具,当我们误删文件后,通过回收站有机会快速恢复…

QT增加线程函数步骤流程

在使用线程的时候,不仅要关注线程开启的时机,同时还要关注线程安全退出,这样才能保证程序的健壮性,如果线程开启的较多,且开启关闭比较频繁,建议使用线程池来处理。开启线程有三种方式:第一种C的…

C语言动态内存管理(重点)

目录 1、为什么要有动态内存分配 2、malloc 和 free 2.1 malloc函数 2.2 free函数 3、calloc 和 realloc 3.1 calloc函数 3.2 realloc 函数 3.3 realloc 和 malloc 区别 3.4 realloc 函数存在的问题 4、常见的动态内存的错误 5、动态内存经典笔试题分析 6、柔…

Vue.js前端开发零基础教学(一)

目录 第一章 初识Vue.js 前言 开发的好处 一.前端技术的发展 什么是单页Web应用? 二. Vue的简介 三. Vue的特性 四. Vue的版本 五.常见的包管理 六.安装node环境 第一章 初识Vue.js 学习目标: 了解前端技术的发展 了解什么是Vue掌握使用方…

Oracle19C图形界面安装教程

文章目录 一、安装前的准备1、安装Linux操作系统2、配置网络源或者本地源3、hosts文件配置 二、Oracle19c安装过程1、安装相关软件:2、用户与组:3、修改内核参数:4、资源限制:5、配置用户环境变量:6、创建相关文件目录…

如何理解 Linux 命令行参数与环境变量7

一、命令行参数 1.1参数介绍 在写C语言程序时,main函数是否可以带参数呢?------ 是可以的 int argc: 命令行参数的个数char *argv[ ]: 字符指针数组(指向各个命令行参数的字符指针所构成的数组) 我们写一段代码来打印一下看这…

基于单片机的事务管理系统

基于单片机的事务管理系统 摘 要 所谓事务管理系统就是主要用来做提醒,辅助以计时、秒表等的一个小系统。利用MCS51单片机即可完成系统硬件需要,成本低廉,程序简单,功能丰富实用,使用率广。根据题目的设计要求&#…

HW中常见的面试题

1.说说你在工作中或者SRC中挖到的比较典型的漏洞? 2.HW中如果已经发现红方IP地址,该如何溯源? 通过蜜罐系统或者安全设备锁定红方MAC,然后通过IP地址对,whois查询到该IP注册人以及注册邮箱,如果是发现邮箱是某厂商注册则可利…

SpringBoot-03 | SpringBoot自动配置

SpringBoot-03 | SpringBoot自动配置 原理分析代码示例源码剖析SpringBootConfiguration:组合注解,标记当前类为配置类ComponentScanEnableAutoConfigurationImport加载spring.factoriesrun初始化加载spring.factoriesspring.factories中的钩子类 网上盗…

部署DiffSynth-Studio实现视频风格转换

DiffSynth 是一个新的 Diffusion 引擎,可以实现图片和视频的风格转换。 拉取源码 git clone https://github.com/Artiprocher/DiffSynth-Studio/ 创建环境 conda env create -f environment.yml conda activate DiffSynthStudio 下载模型 将Stable Diffusion模…

组织学习的革命:打破常规,引领未来

组织学习的革命:打破常规,引领未来 一、组织学习的重塑:从传统到现代的转变 在知识经济的时代背景下,组织学习已经成为企业持续发展和竞争优势的关键。传统的组织学习方式,如培训、研讨会等,虽然在一定程…

NeRF——基于神经辐射场的三维场景重建和理解

概述 三维重建是一种将物理世界中的实体转换为数字模型的计算机技术。其基本概念是通过对物理世界中的物体或场景进行扫描或拍摄,并使用计算机算法将其转换为三维数字模型。抽象意义上的三维模型指的是:形状和外观的组合,并且可以渲染成不同…

阿里云服务器2核4G服务器收费价格表,1个月和一年报价

阿里云2核4G服务器多少钱一年?2核4G服务器1个月费用多少?2核4G服务器30元3个月、85元一年,轻量应用服务器2核4G4M带宽165元一年,企业用户2核4G5M带宽199元一年。本文阿里云服务器网整理的2核4G参加活动的主机是ECS经济型e实例和u1…

PyTorch学习笔记之激活函数篇(三)

文章目录 3、ReLU3.1 公式3.2 对应的图像3.3 对应的图像的代码3.4 优点与不足3.5 torch.relu()函数 3、ReLU 3.1 公式 ReLU函数的公式&#xff1a; f ( x ) { x , x > 0 0 , x < 0 f(x) \begin{cases} x&,x>0 \\ 0&,x<0 \end{cases} f(x){x0​,x>…

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

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

为什么延迟删除可以保证MYSQL 与redis的一致性?

看过很多保持MYSQL 与redis保持一致性的文章都提到了延迟删除&#xff0c;其实脱离任何业务场景的设计都是不切实际的&#xff0c;所以我会本着一个通用的读写场景去分析为什么延迟删除大概率可以保证MYSQL与redis的最终一致。 通常的读写场景 通常在使用redis作为读写缓存时…