当前位置: 首页 > news >正文

mysql主从复制及故障修复

一、主MySQL数据库的配置

        分别在三台主机(chen2/10.110、chen3/10.120、chen4/10.130)中安装mysql数据,其中chen2/10.110作为主MySQL服务器,其余两台作为从MySQL服务器。

1、在主机上部署mysql数据库

        详细的请看上一篇:mysql数据库的备份与恢复-CSDN博客

其上含,部署mysql数据库脚本,可以一键部署对应版本的MySQL数据库。

2、修改相应的配置

        在主mysql服务器的配置中进行修改,开启主服务器的二进制日志功能,设置其 server_id 为本机IP地址,防止与其他主机冲突,关闭其域名解析的功能。

vim /etc/my.cnf.d/mysql-server.cnf

[mysqld]
server-id=1
skip_name_resolve=1
log-bin
socket=/data/mysql/mysql.sock
datadir=/data/mysql
log-error=/data/mysql/mysql.log
pid-file=/tmp/mysql.sock

3、主mysql数据库中创建账号和密码

        mysql数据库的主从复制,是基于账号和密码来进行的,在主服务器中创建有复制权限的账号

create user 'repluser'@'%';
alter user 'repluser'@'%' identified with mysql_native_password by '123456';
GRANT REPLICATION SLAVE ON *.* TO 'repluser'@'%';

这里是使用的老式的方法来设置密码,用来兼容不同版本的从服务器

进行检测是否吵架呢成功

select user,host,authentication_string from mysql.user;

查看主服务器的二进制日志是否开启

show master status;

二、从MySQL数据库的配置

1、修改从mysql数据库的配置文件

        开启二进制日志功能,设置其服务器id ,跳过域名解析,权限设置为仅读

vim /etc/my.cnf

[mysqld]
server-id=2
skip_name_resolve=1
log-bin
socket=/data/mysql/mysql.sock
datadir=/data/mysql
log-error=/data/mysql/mysql.log
pid-file=/tmp/mysql.sock
read_only

2、主从相连

在从节点上使用有复制权限的用户连接至主服务器,并启动复制线程

修改完配置文件记得重启服务

service mysqld restart

登录从MySQL控制台,进行修改

change master to-> master_host='192.168.10.110',-> master_user='repluser',-> master_password='123456',-> master_port=3306,-> master_log_file='chen2-bin.000002',-> master_log_pos=157;

在上面设置的,主服务器的IP地址、连接用户、用户的密码、主服务器的端口、二进制日志的位置节点、从哪个位点开始

3、开启从节点线程

先检测一下从节点的线程状态信息

SHOW REPLICA STATUS\G

其状态信息,与上面设置的保持一致

开启从节点的主从同步线程:

START REPLICA;

检测从节点的线程状态信息

SHOW REPLICA STATUS\G

查看主从节点开启的线程

show processlist;

从服务器

主服务器

4、检验数据是否正常同步

先查看之前主服务器中创建用户 repluser的权限,确保其具备相应的权限

select user,host,authentication_string from mysql.user;

在主服务器中创建数据库test

从服务器中进行查看数据是否同步

在主数据库test中吵架呢表tab1

create table tab1 (id int primary key,name char(24));

从服务器中查看

表中添加数据

insert into tab1 values (1,'aaa'),(2,'bbb'),(3,'ccc');

5、新建从MySQL服务器,使其关联主MySQL数据库

先在原主数据库中备份数据,这里直接使用脚本进行数据的备份

数据备份详情请看:mysql数据库的备份与恢复-CSDN博客

#!/bin/bash
# 这是一个实战分库的备份脚本
# 
TIME=`date +%F_%H-%M-%S`
DIR=/backup
PASS='123456'[ -d $DIR ] || mkdir $DIRfor DB in `mysql -u root -p"$PASS" -e 'show databases' | grep -Ev "^Database|.*schema$|sys"`;domysqldump -F --single-transaction --source-data=2 --default-character-set=utf8mb4 -q -B $DB -p"$PASS" | gzip > ${DIR}/${DB}_${TIME}.sql.gz
done

修改对应的密码,就可以直接对,所需要的数据进行备份

将备份数据在新的从服务器上解压,并在其中添加 change master to

查看主服务器的二进制位点,在新增的从服务器上添加对应的配置

启动I/O线程,并进行验证

START REPLICA;

在主节点上,插入数据验证

insert into tab1 values (4,'ddd');

从节点上查看

新增从节点,可以正常的从主节点中,同步数据。

三、主从配置,故障修复

1、测试阻塞从节点

        从之前的配置可以知道,从节点上,设置的仅读,禁止写入。

        这么配置是为了预防,当从节点中添加数据后,其与主节点之间容易造成冲突,形成阻塞状态

在从节点上添加数据

当主节点上也出现数据更新时

其他从节点上数据同步情况

这时,新添加的节点上就会出现阻塞现象

2、对阻塞的节点进行恢复

先关闭 replica 线程

stop replica;

将错误数据删除,并将正确数据手动添加进去

将从节点忽略一个主节点的复制事件,并再次启动replica线程

set global sql_replica_skip_counter=1;

这时,再次查看从节点的状态,就恢复正常了

在主节点中添加数据进行验证

从节点正常复制同步数据

相关文章:

mysql主从复制及故障修复

一、主MySQL数据库的配置 分别在三台主机(chen2/10.110、chen3/10.120、chen4/10.130)中安装mysql数据,其中chen2/10.110作为主MySQL服务器,其余两台作为从MySQL服务器。 1、在主机上部署mysql数据库 详细的请看上一篇:mysql数据…...

基于springboot的网上服装购物商城系统

基于springboot的网上服装购物商城系统 开发语言:Java 框架:springboot JDK版本:JDK1.8 服务器:tomcat7 数据库:mysql 5.7 数据库工具:Navicat11 开发软件:idea 源码获取: &#x…...

aws(学习笔记第六课) AWS的虚拟私有,共有子网以及ACL,定义公网碉堡主机子网以及varnish反向代理

aws(学习笔记第六课) AWS的虚拟私有,共有子网以及ACL,定义公网碉堡主机子网以及varnish反向代理 学习内容: AWS的虚拟私有,共有子网以及ACL定义公网碉堡主机子网,私有子网和共有子网以及varnish反向代理 1. AWS的虚拟…...

接口测试(三)jmeter——连接mysql数据库

一、jmeter安装jdbc 1. 下载插件包,mysql数据库为例,驱动 com.mysql.jdbc.Driver 需要下载 mysql-connector-java-5.1.7-bin.jar 插件包,将插件包放到 jmeter 安装目录下的 lib 目录 2. 给jmeter安装jdbc驱动 二、jmeter操作数据库 1.…...

双十一购物节有哪些好物值得入手?2024双十一好物清单合集分享

一年一度的双十一购物狂欢节即将来临,各大平台纷纷开启预热活动,伴随着品牌的疯狂折扣和满减优惠,众多商品即将迎来超值的价格。现在正是大家“剁手”换新装备的大好时机。作为一名深耕智能产品多年的资深达人,今天这期我将从不同…...

jmeter中请求参数:Parameters、Body Data的区别

使用jmeter发送请求,常常要伴随传递参数。有两种请求参数: Parameters, Body Data, 它们的使用方式有很大不同。 先看下get和post请求的区别。 get请求:顾名思义是从服务器获取资源。 post请求:顾名思义是往服务器提交要处理的数据。 直观…...

Docker安装ActiveMQ镜像以及通过Java生产消费activemq示例

拉取镜像 docker pull docker.io/webcenter/activemq 启动容器 docker run -d --name myactivemq -p 61616:61616 -p 8162:8161 docker.io/webcenter/activemq:latest 这样就代表启动成功了 浏览器访问 http://localhost:8162/ admin admin 开启验证 修改配置文件/opt/ac…...

迅为RK3562开发板/核心板240PIN引脚全部引出,产品升级自如

可应用于人脸跟踪、身体跟踪、视频监控、自动语音识别(ASR)、图像分类驾驶员辅助系统(ADAS)、车牌识别、物体识别等。 iTOP-3562开发板/核心板采用瑞芯微RK3562处理器,内部集成了四核A53Mali G52架构,主频2GHZ,内置1TOPSNPU算力,R…...

C++实现顺序栈和链栈操作(实验3--作业)

顺序栈 一、主要功能 实现了顺序栈(SqStack)的数据结构,并利用该数据结构进行了栈的基本操作以及数制转换的功能。 二、数据结构定义 定义了一些常量: MAXSIZE表示栈的最大长度为 100。OVERFLOw表示存储失败的错误码为 -2。O…...

龙兴物联一体机:设备监测的智能先锋

龙兴物联物联网一体机的崛起 龙兴物联物联网一体机在设备监测领域占据着至关重要的地位。随着科技的不断进步和各行业对设备监测需求的日益增长,龙兴物联物联网一体机以其卓越的性能和广泛的适用性,迅速崛起并成为众多企业和机构的首选。 在当今数字化时…...

KinectDK相机SDK封装Dll出现k4abt_tracker_create()创建追踪器失败的问题

项目场景: KinectDK相机SDK封装Dll 问题描述 在 C 环境下,使用 GPU 模式(默认)调用 k4abt_tracker_create 函数正常工作。但是,在 Python 环境下,通过 ctypes 调用相同的 DLL,当使用 GPU 模式…...

Linux 命令—— ping、telnet、curl、wget(网络连接相关命令)

文章目录 网络连接相关命令pingtelnetcurlwget 网络连接相关命令 ping ping 命令是用于测试网络连接和诊断网络问题的工具。它通过向目标主机发送 ICMP(Internet Control Message Protocol)回显请求,并等待回复,以确定目标主机是…...

高速缓冲存储器Cache是如何工作的、主要功能、高速缓冲存储器Cache和主存有哪些区别

1、高速缓冲存储器Cache是如何工作的 高速缓冲存储器Cache的工作主要基于程序和数据访问的局部性原理,其工作方式可以概括为以下几点: 存储近期可能访问的数据和指令:Cache会存储CPU近期可能访问的数据和指令,当CPU需要访问这些…...

极简版Java敏感词检测SDK

敏感词工具 sensitive-word 基于 DFA 算法实现的高性能敏感词工具,开源在GitHub:https://github.com/houbb/sensitive-word。用于敏感词/违禁词/违法词/脏词等的识别和阻拦,是基于 DFA 算法实现的高性能 java 敏感词过滤工具框架。 使用场景…...

H3C路由器交换机操作系统介绍

路由器 路由器的作用 连接具有不同介质的链路连接网络或子网,隔离广播对数据报文执行寻路和转发交换和维护路由信息 H3C 路由器系列 CR系列核心路由器SR系列高端路由器MSR系列路由器ER系列路由器 交换机 交换机的作用 连接多个以太网物理段,隔离冲…...

【项目案例】-音乐播放器-Android前端实现-Java后端实现

精品专题: 01.C语言从不挂科到高绩点 https://blog.csdn.net/yueyehuguang/category_12753294.html?spm1001.2014.3001.5482https://blog.csdn.net/yueyehuguang/category_12753294.html?spm1001.2014.3001.5482 02. SpringBoot详细教程 https://blog.csdn.ne…...

EasyX图形库的安装

前言 EasyX是一个图形库,可以用来做一些c/c小游戏,帮助学习。 一、进入EasyX官网 https://easyx.cn/ 二、点击下载EasyX 三、下载好后以管理员身份运行它 四、点击下一步 五、然后它会自动检测你的编辑器,用哪个就在哪个点安装 六、安装成功…...

数据结构 - 队列

队列也是一种操作受限的线性数据结构,与栈很相似。 01定义 栈的操作受限表现为只允许在队列的一端进行元素插入操作,在队列的另一端只允许删除操作。这一特性可以总结为先进先出(First In First Out,简称FIFO)。这意味…...

基于springboot美食推荐商城的设计与实现

基于springboot美食推荐商城的设计与实现 开发语言:Java 框架:springboot JDK版本:JDK1.8 服务器:tomcat7 数据库:mysql 5.7 数据库工具:Navicat11 开发软件:idea 源码获取:https:…...

React开发一个WebSocket

export default class SocketService {static instance null;static get Instance() {if (!this.instance) {this.instance new SocketService();}return this.instance;}// 和服务端连接的socket对象ws null;// 存储回调函数callBackMapping {};// 标识是否连接成功connec…...

Oracle DECODE 丢失时间精度的原因与解决方案

在Oracle数据库中,DECODE 函数是一个非常实用的条件处理函数,通常用于替代简单的 CASE WHEN 语句。它根据给定的值列表进行匹配,如果匹配成功则返回相应的值。如果不匹配,返回一个默认值。 问题描述 SELECT DECODE(-21, -1, NU…...

如何用示波器检测次级点火系统(一)

写在最前面: 单看标题可能会让你觉得这篇文章的主题是关于检测线圈,火花塞和火花塞插头电线。但我们指的是分析燃烧室内电子的行为。目标是看燃料混合物,阀座,压缩,积碳和其它影响这种特性的症状。最终目的是要学会分…...

基于SpringBoot+Vue+uniapp的涪陵区特色农产品交易系统的详细设计和实现(源码+lw+部署文档+讲解等)

详细视频演示 请联系我获取更详细的视频演示 项目运行截图 技术框架 后端采用SpringBoot框架 Spring Boot 是一个用于快速开发基于 Spring 框架的应用程序的开源框架。它采用约定大于配置的理念,提供了一套默认的配置,让开发者可以更专注于业务逻辑而不…...

bmp怎么转换为jpg?快速批量将bmp转换为jpg

bmp怎么转换为jpg?在日常的数字生活中,我们时常会遇到各种格式的图片文件,它们各自拥有不同的特点和用途。最近,我遇到了一个有趣的小插曲:我从网络上下载了一张精美的BMP格式图片,打算用它作为一篇报告的背…...

centos8配置java环境变量jdk8u422-b05

1. 下载 JDK 8u422-b05 首先,确保已经下载了 JDK 8u422-b05 的二进制文件。如果还没有下载,你可以去 Oracle 官方网站或者其他可信的源下载 JDK 8u422。 2. 安装 JDK 将下载的 JDK 文件解压到 /usr/local/java 目录下: sudo mkdir /usr/l…...

基于SSM的校园拓展活动管理系统

文未可获取一份本项目的java源码和数据库参考。 1 选题背景 校园文化是精神的载体,是青年成长成才的沃土,是一种体现校园的硬件设施、精神风貌、制度体系、办学理念以及办学特色的综合文化。文明程度高、文化气息浓、活动种类多的校园文化不仅能焕发学校…...

Python随机森林算法详解与案例实现

目录 Python随机森林算法详解与案例实现1、随机森林算法概述2、随机森林的原理3、实现步骤4、分类案例:使用随机森林预测鸢尾花品种4.1 数据集介绍4.2 代码实现4.3 代码解释4.4 运行结果 5、回归案例:使用随机森林预测波士顿房价5.1 数据集介绍5.2 代码实…...

提示词高级阶段学习day2.1-在提示词编写中对{}的使用教程

首先在 prompt engineering 中,使用 {} 通常是为了标识占位符或变量, 这些占位符可以在实际生成内容时被动态替换。 通过这种方式,prompt 可以更加通用和灵活,适用于不同的输入数据场景。 以下是一个体系化、结构化的教程&…...

2024年,每一个大模型都躲不过容嬷嬷和紫薇

2024年还不上视频生成的大模型公司,还能上桌吃饭吗? 连最积极搞AI的李彦宏,在这件事上也迟疑了。 “百度不碰Sora类的视频生成方向。”李彦宏在近期的2024年Q3总监会上说道。原因在于,10年、20年都可能难以商业化应用。 从Open…...

SpringBoot之RedisTemplate基本配置

公司要求redis配置密码使用密文,但是程序使用的是spring默认的redisTemplate,那么就需要修改配置实现密码加解密。 先搞个加密工具类: public class SM2Encryptor {// 加密,使用公钥public static String encryptText(String pub…...