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,一经查实,立即删除!

相关文章

【No.10】蓝桥杯构造法|两道例题(C++)

什么是构造 构造题 要求解题者通过观察问题的结构和规律,找到一种通用的方法或模式,使得在问题规模增大时,依然能够高效地得到答案。 在解决构造题时,以下几点思考是很重要的: 观察问题规模的增长:了解问题随着规模的增大&…

使用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. 设计…

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

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

大型LLM模型语言全面解读-开篇

目录 由于1万字的要求过于庞大,我将先给出论文的大纲以及部分内容的详细撰写,以确保内容的质量和完整性。如果您需要更完整的内容,可以在之后继续输入。 大型LLM模型语言全面解读 **摘要:**本文旨在对大型语言模型(…

什么是物联网远程模块

在数字化和信息化的浪潮下,物联网技术正在以惊人的速度改变着我们的生活和生产方式。物联网远程模块,作为物联网技术的核心组件之一,正引领着这场变革。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[ ]: 字符指针数组(指向各个命令行参数的字符指针所构成的数组) 我们写一段代码来打印一下看这…

CISP 4.2备考之《软件安全开发》知识点总结

文章目录 第一节 软件安全开发基础第二节 软件安全开发模型第三节 安全需求、设计、编码、测试、交付 第一节 软件安全开发基础 1.软件工程三要素:方法、过程、工具。2.软件开发模型:瀑布模型、迭代模型、增量模型、螺旋模型、原型模型、净室模型。3.千…

Python BaseModel和dataclass用法和区别

Pydantic 的 BaseModel Pydantic 是一个数据验证和设置管理的库,它使用 Python 类型注释来定义数据模型的结构。在 Pydantic 中,BaseModel 是所有模型的基类,提供了类型检查、数据转换和验证等功能。下面是一个简单的例子: from…

AI和机器学习中的Python基础库和框架

Python基础 基本语法 Python是一种高级的、解释型的编程语言,以其简洁清晰的语法和强大的灵活性而闻名。对于初学者来说,掌握Python的基本语法是学习其他高级概念之前的重要步骤。以下是Python基本语法的详细介绍: 变量类型 在Python中&a…

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

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

电商API接口淘宝/天猫按图搜索淘宝商品(拍立淘)API请求接入演示

"拍立淘"是淘宝提供的一种图片搜索功能,允许用户上传图片来搜索相似的商品。要接入淘宝的API进行按图搜索的功能,通常需要以下几个步骤: 注册账号:你需要有一个开放平台的账号,并成为开发者。 创建应用&…

30个业务场景的SQL优化

作为 SQL 专家,一定深知 SQL 查询优化对于数据库性能的重要性。在不同的业务需求场景中,SQL 查询可能因各种原因导致性能下降。以下是一些常见的业务需求场景、可能的性能问题原因、优化策略以及详细的示例解释,这是 V 哥验证过的经验&#x…

10 开源鸿蒙中芯片与开发板对应的源码(硬件相关的部分)

开源鸿蒙中芯片与开发板对应的源码(硬件相关的部分) 作者将狼才鲸日期2024-03-20 开源鸿蒙通过芯片仓存放指定芯片和指定开发板的代码,硬件相关的代码和纯逻辑代码是分开存放的 源码模块的组织结构在manifest这个Git仓库,这也是拉…