MySQL 主从复制部署(8.0)

什么是主从数据库


主从数据库是一种数据库架构模式,通常用于提高数据库的性能、可用性和可伸缩性。

它包括两种类型的数据库服务器:

1)主数据库(Master):主数据库是读写数据的主要数据库服务器。所有写操作(插入、更新、删除)都在主数据库上执行。主数据库负责维护数据的一致性,并将写操作的变更记录下来。

2)从数据库(Slave):从数据库是只读副本,它从主数据库中复制数据。承担一部分主库的的读数据压力,从而减轻了主数据库的负担。从数据库可以有多个,构成一个复制链,其中每个从数据库都从前一个从数据库中复制数据。

主从数据库优缺点


1)优点

  • 高可用,主库挂了,从库顶上。
  • 读写分离,主库用于写,从库用于读,从而缓解主库压力。
  • 备份数据。

2)缺点

  • 数据延迟:由于数据复制的时间延迟,从数据库可能不会立即反映主数据库中的更改。
  • 配置和维护复杂性:设置和维护主从数据库架构需要额外的工作,特别是确保数据的一致性和复制的稳定性。

主从数据库的搭建


主库配置

1)修改配置文件/etc/my.cnf

# mysql服务ID,保证整个集群环境中唯一,默认为1
server-id=1# 是否只读,1代表只读,0代表读写
read-only=0# 开启gtid(用于适配MASTER_AUTO_POSITION)
gtid-mode = ON
enforce-gtid-consistency = ON
# log-slave-updates=1

2)重启MySQL服务器

systemctl restart mysqld

3)登录mysql,创建远程连接的账号,并授予主从复制权限

# 创建s01用户,并设置密码,该用户可在任意主机连接该MySQL服务
# 删除创建的用户drop user 's01'@'%';
create user 's01'@'%' identified with mysql_native_password by 'Root@123456';# 为s01用户分配主从复制权限
grant replication slave on *.* to 's01'@'%';

4)通过指令,查看二进制日志坐标

show master status;

执行结果:

  • file:从哪个日志文件开始推送;
  • position:从哪个位置开始推送日志;
  • binlog_ignore_db:不需要同步的数据库;

从库配置

1)修改配置文件 /etc/my.cnf

# mysql服务ID,保证整个集群环境中唯一,默认为1
server-id=2# 是否只读,1代表只读,0代表读写
read-only=1# 开启gtid(用于适配MASTER_AUTO_POSITION)
gtid-mode = ON
enforce-gtid-consistency = ON
# log-slave-updates=1

2)重启MySQL服务器

systemctl restart mysqld

3)登录mysql,设置主库配置

# 使用s01用户连接
change master to source_host='127.0.0.1',source_user='s01',source_password='kingsoft.',master_port=3307,MASTER_AUTO_POSITION =1;# 使用root用户连接(二选一即可)
change master to source_host='127.0.0.1',source_user='root',source_password='kingsoft.',master_port=3307,MASTER_AUTO_POSITION =1;

注:

  • source_host:如果是同一台机器用127.0.0.1或内网ip都可以,如果是不同机器使用外网ip;
  • master_port:指定主节点的端口号,未指定时默认3306;

4)开启同步操作

# 关闭同步操作:stop slave; 
start slave;

6)查看主从同步状态

show slave status\G

执行结果:

注:如果 Slave_IO_Running 和 Slave_SQL_Running 都为 Yes,则说明主从复制部署成功。

  • Master_Log_File: 从服务器正在读取的主服务器的二进制日志文件的名称。
  • Read_Master_Log_Pos: 从服务器已经读取的主服务器二进制日志的位置。
  • Relay_Master_Log_File: 已经应用到从服务器数据的主服务器二进制日志文件的名称。
  • Exec_Master_Log_Pos: 已经应用到从服务器数据的主服务器二进制日志的位置。
  • Slave_IO_Running 和 Slave_SQL_Running: 分别表示从服务器的 I/O 线程和 SQL 线程是否正在运行。
  • Last_Errno 和Last_Error: 最后一次复制时的错误号和错误信息。

注:正常情况下无法查看master.info里的内容,但可以通过show slave status指令查看其中许多重要信息。

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

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

相关文章

前端小技巧之轮播图

文章目录 功能htmlcssjavaScript图片 设置了一点小难度,不理解的话,是不能套用的哦!!! (下方的圆圈与图片数量不统一,而且宽度是固定的) 下次写一些直接套用的,不整这些麻…

SpringBoot配置优先级

配置优先级排序(从高到低) 1)命令行参数 2)java系统属性 3)application.properties 4)application.yaml 5)application.ymlSpringBoot的系统属性配置和命令行参数配置 1、cmd端进行配置 1&am…

子传父vue/react

vue子传父&#xff1a;很多都是结合defineEmit来实现的&#xff0c;这里通过给子组件传递函数&#xff0c;子组件调用传递下来的函数实现传值。 父亲&#xff1a; <template><div>father<Demo :clickChild"clickFather" msg"32434">We…

边缘计算网关究竟是什么呢?它又有什么作用呢?-天拓四方

在数字化时代&#xff0c;信息的传输与处理变得愈发重要&#xff0c;而其中的关键节点之一便是边缘计算网关。这一先进的网络设备&#xff0c;不仅扩展了云端功能至本地边缘设备&#xff0c;还使得边缘设备能够自主、快速地响应本地事件&#xff0c;提供了低延时、低成本、隐私…

基本的数据类型在16位、32位和64位机上所占的字节大小

1、目前常用的机器都是32位和64位的&#xff0c;但是有时候会考虑16位机。总结一下在三种位数下常用的数据类型所占的字节大小。 数据类型16位(byte)32位(byte)64位(byte)取值范围char111-128 ~ 127unsigned char1110 ~ 255short int / short222-32768~32767unsigned short222…

Linux命令学习—linux 下的用户和组的管理(下)

1.2、组的管理 1.2.1、组相关文件介绍 ①、/etc/group 用户组的特性在系统管理中为系统管理员提供了极大的方便&#xff0c;但安全性也是值得关注的&#xff0c;如某个用户 下有对系统管理有最重要的内容&#xff0c;最好让用户拥有独立的用户组&#xff0c;或者是把用户下的…

Go程序设计语言 学习笔记 第十一章 测试

1949年&#xff0c;EDSAC&#xff08;第一台存储程序计算机&#xff09;的开发者莫里斯威尔克斯在他的实验室楼梯上攀登时突然领悟到一件令人震惊的事情。在《一位计算机先驱的回忆录》中&#xff0c;他回忆道&#xff1a;“我突然完全意识到&#xff0c;我余生中的很大一部分时…

SpringCloudalibaba之Nacos的配置管理

Nacos的配置管理 放个妹子能增加访问量&#xff1f; 动态配置服务 动态配置服务可以让您以中心化、外部化和动态化的方式管理所有环境的应用配置和服务配置。 动态配置消除了配置变更时重新部署应用和服务的需要&#xff0c;让配置管理变得更加高效和敏捷。 配置中心化管…

Redis: 内存回收

文章目录 一、过期键删除策略1、惰性删除2、定时删除3、定期删除4、Redis的过期键删除策略 二、内存淘汰策略1、设置过期键的内存淘汰策略2、全库键的内存淘汰策略 一、过期键删除策略 1、惰性删除 顾名思义并不是在TTL到期后就立即删除&#xff0c;而是在访问一个key的时候&…

计算机网络----第十二天

交换机端口安全技术和链路聚合技术 1、端口隔离技术&#xff1a; 用于在同vlan内部隔离用户&#xff1b; 同一隔离组端口不能通讯&#xff0c;不同隔离组端口可以通讯; 2、链路聚合技术&#xff1a; 含义&#xff1a;把连接到同一台交换机的多个物理端口捆绑为一个逻辑端口…

武林风云之一个shell同时维护多个设备

仅以此文纪念linux中国 小y最近真的颓废了&#xff0c;马上就三十了&#xff0c;一下班整个人跟个废物一样&#xff0c;躺在住处刷B站&#xff0c;太颓废了。哎&#xff0c;我想这今年就收手博客了&#xff0c;后续不再更新。但是人不能这样&#xff0c;人需要和懒惰做斗争&…

Python学习笔记25 - 一些案例

1. 输出金陵前五钗 2. 向文件输出信息 3. 打印彩色字 4. print函数、进制转换 5. 猜数游戏 6. 输出ASCII码对应的字符 7. 计算100~999之间的水仙花数 8. 千年虫数组的索引及其值 9. 星座zip dict 10. 12306车次信息 11. 字符串的格式化 12. 手动抛出异常 13. 计算圆的面积和周长…

源码安装 clr - hip runtime

1&#xff0c;下载 HIP 源代码 git clone --recursive https://github.com/ROCm/HIP.git cd HIP/ git checkout rocm-6.0.2 pwd export HIP_COMMON_DIR${PWD} cd ../ 2&#xff0c;下载 clr 源码 git clone --recursive https://github.com/ROCm-Developer-Tools/clr.git cd c…

杰发科技AC7840——CAN通信简介(4)_过滤器设置

0. 简介 注意&#xff1a;过滤器最高三位用不到&#xff0c;因此最高位随意设置不影响过滤器。 1. 代码分析 注意设置过滤器数量 解释的有点看不懂 详细解释...也看不大懂 Mask的第0位是0&#xff0c;其他位都是1(就是F?)&#xff0c;那就指定了接收值就是这个数&#xff0c;…

Qt状态机

基本概念 QStateMachine&#xff1a;管理一组状态和转换的状态机。QState&#xff1a;表示状态机中的一个状态。QSignalTransition&#xff1a;根据发射的信号触发状态之间的转换。 示例逻辑 假设您有三个主要状态&#xff1a;值守&#xff08;Daemon&#xff09;、做样&…

小程序 安卓连接wifi成功,提示消息为失败

解决方案&#xff1a; forceNewApi: true, uni.connectWifi({forceNewApi: true,SSID: this.SSID,password: this.password,success: (res) > {console.log(res, "连接成功");},fail: (err) > {console.log(err);},}); 加上这话就返回正常数据了

版本控制工具Git的使用

1、Git的基本概念和使用 1、Git是什么? ● Git: 是一个开源的分布式版本控制系统&#xff0c;可以有效、高速的处理从很小到非常大的项目版本管理。 ● GitHub: 全球最大的面向开源及私有软件项目的托管平台,免费注册并且可以免费托管开源代码。 ● GitLab:与GitHub类似&a…

二分查找的边界问题是怎么产生的?

总结&#xff1a;二分查找的目标有两个&#xff0c;一个是左区件的右边界&#xff0c;一个是右区间的左边界 如何去理解二分的过程&#xff1f; 如果要查找的是左区间的右边界&#xff1a; 可以将[l, r]理解一个集合&#xff0c;这个集合范围内的数都有可能是最后需要得到的…

打不动的蓝桥杯

打不动的蓝桥杯 2024-4-13 今天的蓝桥杯打得很烂&#xff0c;8题写了4题&#xff0c;100分可能有20来分吧。我写了的题好像都很简单&#xff0c;没什么竞争力。又觉得我知道的东西不止这么点&#xff0c;没能发挥。 这次比赛&#xff0c;首先&#xff0c;有强烈的陌生感。pytho…

【C++核心】C++中的对象

C中的对象 一、对象的初始化和清理1. 构造函数和析构函数1.1 构造函数简介1.2 构造函数1.3 析构函数1.4 代码样例1.5 默认实现 2. 构造函数的分类及调用2.1 构造函数的分类2.2 构造函数的调用方式2.3 匿名函数 3. 拷贝构造函数调用时机4. 构造函数的规则5. 深拷贝和浅拷贝6. 初…