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

MySQL主从复制,读写分离

目录

一、MySQL主从复制介绍

MySQL复制过程分成三步

二、主库配置master

1、步骤1

2、第二步:重启Mysql服务

3、第三步:登录Mysql数据库,执行下面SQL

4、第四步:登录Mysql数据库,执行下面SQL,记录下结果中File和Position的值

三、配置-从库Slave

1、步骤1

2、第二步:重启Mysql服务

3、第三步:登录Mysql数据库,执行下面SQL

4、第四步:登录Mysql数据库,执行下面sQL,查看从数据库的状态

四、读写分离

1、读写分离介绍

2、sharding-JDBC介绍

3、使用Sharding-JDBC实现读写分离步骤


一、MySQL主从复制介绍

MysQL主从复制是一个异步的复制过程,底层是基于Mysql数据库自带的二进制日志功能。就是一

台或多台NysQL数据库(slave,即从库)从另一台MysQL数据库(master,即主库)进行日志的复

制然后再解析日志并应用到自身,最终实现从库的数据和主库的数据保持一致。MySQL主从复制

是NysQL数据库自带功能,无需借助第三方工具。

MySQL复制过程分成三步

1、master将改变记录到二进制日志 ( binary log)

2、slave将master的binary log拷贝到它的中继日志(relay log)

3、slave重做中继日志中的事件,将改变应用到自己的数据库中

前提条件

提前准备好两台服务器,分别安装Mysql并启动服务成功

二、主库配置master

1、步骤1

第一步:修改Mysql数据库的配置文件/etc/my . cnf

[mysqld]

log-bin=mysql-bin        #[必须]启用二进制日志

server-id=100        #[必须]服务器唯一ID

2、第二步:重启Mysql服务

systemctl restart mysqld

3、第三步:登录Mysql数据库,执行下面SQL

GRANT REPLICATION SLAVE ON *.* to 'xiaoming'@'%' identified by 'Root@123456';

注:上面SQL的作用是创建一个用户xiaoming,密码为Root@123456,并且给xiaoming用户授予

REPLICATION SLAVE权限。常用于建立复制时所需要用到的用户权限,也就是slave必须被

master授权具有该权限的用户,才能通过该用户复制。

4、第四步:登录Mysql数据库,执行下面SQL,记录下结果中File和Position的值

show master status;

注:上面SQL的作用是查看Master的状态,执行完此SQL后不要再执行任何操作

三、配置-从库Slave

1、步骤1

第一步:修改Mysql数据库的配置文件/etc/my.cnf

[mysqld]

server-id=101 #[必须]服务器唯一ID

2、第二步:重启Mysql服务

systemctl restart mysqld

3、第三步:登录Mysql数据库,执行下面SQL

change master to
master_host='192.168.138.100',master_user='xiaoming',master_password='Root@123456',master_log_file='mysql-bin.000001',master_log_pos=439;

注:

master_host:主数据库ip

master_user:创建的用户

master_password:密码

master_log_file:主数据库命令:show master status; 查询的file名称

master_log_po:主数据库命令:show master status; 查询的position

然后执行命令

start slave;

4、第四步:登录Mysql数据库,执行下面sQL,查看从数据库的状态

show slave status;
show slave status;

四、读写分离

1、读写分离介绍

面对日益增加的系统访问量,数据库的吞吐量面临着巨大瓶颈。对于同一时刻有大量并发读操作和

较少写操作类型的应用系统来说,将数据库拆分为主库和从库,主库负责处理事务性的增删改操

作,从库负责处理查询操作能够有效的避免由数据更新导致的行锁,使得整个系统的查询性能得到

极大的改善。

2、sharding-JDBC介绍

Sharding-JDBC定位为轻量级Java框架,在Java的JDBC层提供的额外服务。它使用客户端直连数

据库,以jar包形式提供服务,无需额外部署和依赖,可理解为增强版的JDBC驱动,完全兼容

JDBC和各种ORM框架。使用Sharding-JDBC可以在程序中轻松的实现数据库读写分离。

适用于任何基于JDBC的ORM框架,如:JPA, Hibernate, Mybatis, Spring JDBC Template或直接使用JDBC

支持任何第三方的数据库连接池,如:DBCP,C3PO,BoneCP, Druid, HikariCP等。

支持任意实现JDBC规范的数据库。目前支持MySQL,Oracle,SQLServer,PostgreSQL以及任何

遵循SQL92标准的数据库。

3、使用Sharding-JDBC实现读写分离步骤

1、导入maven坐标

        <dependency><groupId>org.apache.shardingsphere</groupId><artifactId>sharding-jdbc-spring-boot-starter</artifactId><version>4.0.0-RC1</version></dependency>

2、在配置文件中配置读写分离规则

3、在配置文件中配置允许bean定义覆盖配置项

spring:shardingsphere:datasource:names:master,slave# 主数据源master:type: com.alibaba.druid.pool.DruidDataSourcedriver-class-name: com.mysql.cj.jdbc.Driverurl: jdbc:mysql://192.168.138.100:3306/rw?characterEncoding=utf-8username: rootpassword: root# 从数据源slave:type: com.alibaba.druid.pool.DruidDataSourcedriver-class-name: com.mysql.cj.jdbc.Driverurl: jdbc:mysql://192.168.138.101:3306/rw?characterEncoding=utf-8username: rootpassword: rootmasterslave:# 读写分离配置load-balance-algorithm-type: round_robin# 最终的数据源名称name: dataSource# 主库数据源名称master-data-source-name: master# 从库数据源名称列表,多个逗号分隔slave-data-source-names: slaveprops:sql:show: true #开启SQL显示,默认falsemain:allow-bean-definition-overriding: true


 

相关文章:

MySQL主从复制,读写分离

目录 一、MySQL主从复制介绍 MySQL复制过程分成三步 二、主库配置master 1、步骤1 2、第二步:重启Mysql服务 3、第三步&#xff1a;登录Mysql数据库&#xff0c;执行下面SQL 4、第四步&#xff1a;登录Mysql数据库&#xff0c;执行下面SQL&#xff0c;记录下结果中File和…...

什么是UEFI签名认证?UEFI签名有什么好处?

为了防御恶意软件攻击&#xff0c;目前市面上所有电脑设备启动时默认开启安全启动(Secure Boot)模式。安全启动(Secure Boot)是UEFI扩展协议定义的安全标准&#xff0c;可以确保设备只使用OEM厂商信任的软件启动。UEFI签名认证就是对运行在 UEFI 系统下的 efi 驱动和通过 UEFI …...

案例14-课程推送页面逻辑整理--vue

目录一级目录二级目录三级目录一、背景介绍二、问题分析问题1&#xff1a;逻辑边界不清晰&#xff0c;封装意识缺乏问题问题2&#xff1a;展示效果上的问题三、解决过程问题一 代码结构混乱问题解决问题二 代码结构混乱问题解决问题三 展示效果上的细微问题四、总结一级目录 二…...

5大GPU厂商共建 | openKylin社区GPU SIG首次例会召开!

3月8日&#xff0c;openKylin社区GPU SIG首次例会以线上形式召开。此次会议由长沙景美集成电路设计有限公司、摩尔线程智能科技&#xff08;北京&#xff09;有限责任公司、格兰菲智能科技有限公司、象帝先计算技术&#xff08;重庆&#xff09;有限公司等GPU厂商的多位SIG Mai…...

SpringBoot读取配置文件

目录一、简介1、SpringBoot 中常用读取配置方法2、 ConfigurationProperties和Value的区别二、使用 ConfigurationProperties 读取配置三、使用 Value 读取配置一、简介 在日常开发使用 SpringBoot 框架时&#xff0c;经常有一些配置信息需要放置到配置文件中&#xff0c;我们…...

51驱动NRF24L01通信,NRF24L01与TTL转NRF24L01模块通信

51驱动NRF24L01通信&#xff0c;NRF24L01与TTL转NRF24L01模块通信NRF24L01一、简介二、引脚功能描述程序设计一、对 24L01 的程序编程的基本思路如下&#xff1a;二、Tx 与 Rx 的配置过程1、Tx 模式初始化过程&#xff1a;2、Rx 模式初始化过程&#xff1a;三、基本程序函数通信…...

C++友元

欢迎来观看温柔了岁月.c的博客 目前 设有C学习专栏 C语言项目专栏 数据结构与算法专栏 目前主要更新C学习专栏&#xff0c;C语言项目专栏不定时更新 待C专栏完毕&#xff0c;会陆续更新C项目专栏和数据结构与算法专栏 一周主要三更&#xff0c;星期三&#xff0c;星期五&#x…...

MySQL内置函数

文章目录日期函数字符串函数数学函数其他函数日期函数 获取年月日&#xff1a; mysql> select current_date(); ---------------- | current_date() | ---------------- | 2023-02-01 | ---------------- 1 row in set (0.00 sec)获得时分秒&#xff1a; mysql> se…...

mysql数据库之innodb存储引擎架构之内存架构

一、逻辑存储结构 mysql5.5版本开始&#xff0c;默认使用innodb存储引擎&#xff0c;它擅长事务处理&#xff0c;具有崩溃恢复特性&#xff0c;在日常开发中使用非常广泛。 架构图&#xff08;左侧为内存架构&#xff0c;右侧为磁盘架构&#xff09; 二、 内存架构。 1、缓冲…...

Vue:(三十五)路由vue-router

今天&#xff0c;我们开始学习vue中一个很关键的知识点&#xff0c;路由。理解vue的一个插件库&#xff0c;专门用来实现SPA应用单页web应用整个应用只有一个完整的页面点击页面中的导航连接不会刷新页面&#xff0c;只会做页面的局部更新数据需要通过ajax请求获取下来&#xf…...

Dynabook笔记本电脑无法开机怎么重装新系统?

Dynabook笔记本电脑无法开机怎么重装新系统&#xff1f;有用户使用Dynabook笔记本电脑出现了无法正常开机的情况。遇到这样的问题是我们的电脑系统出现了损坏&#xff0c;可以尝试进行系统修复。如果无法修复的话&#xff0c;就需要进行系统重装了。以下为大家带来Dynabook笔记…...

React Native基础知识点

1、组件 与react编写web应用不同&#xff0c;不是使用div、span等标签。而是使用RN官方提供的组件&#xff0c;如View、Text等组件来搭建页面 2、宽高 React Native 中的尺寸都是无单位的&#xff0c;表示的是与设备像素密度无关的逻辑像素点。默认值为auto <View style{{…...

nginx 平滑升级

背景介绍 因为一些原因&#xff0c;比如说 Nginx 发现漏洞、应用一些新的模块等等&#xff0c;想对 Nginx 的版本进行更新&#xff0c;最简单的做法就是停止当前的 Nginx 服务&#xff0c;然后开启新的 Nginx 服务。但是这样会导致在一段时间内&#xff0c;用户是无法访问服务…...

数据结构——链表OJ题目讲解(2)

作者&#xff1a;几冬雪来 时间&#xff1a;2023年3月10日 内容&#xff1a;数据结构链表OJ题目讲解 来源&#xff1a;牛客网和力扣 目录 前言&#xff1a; 刷题&#xff1a; 1.反转链表&#xff1a; 1.改变指向的解法&#xff1a; 2.取头结点插入到新链表&#xff1a; …...

GitHub上线重量级分布式事务笔记,再也不怕面试官问分布式了

分布式事务就是指事务的参与者、支持事务的服务器、资源服务器以及事务管理器分别位于不同的分布式系统的不同节点之上。简单的说&#xff0c;就是一次大的操作由不同的小操作组成&#xff0c;这些小的操作分布在不同的服务器上&#xff0c;且属于不同的应用&#xff0c;分布式…...

C++语法规则1(C++面向对象 )

C面向对象 面向对象的三大特征是继承&#xff0c;多态和封装&#xff0c;C重面向对象重要的就是这些&#xff0c;我们下面通过一些简单的实例加以理解&#xff0c;从这小节开始&#xff0c;我们将开启新的编程旅途。与 C 语言编程的思想完全不同了&#xff0c;这就是 C!理解概…...

Web漏洞-CSRF漏洞

CSRF漏洞介绍&#xff1a;CSRF&#xff08;Cross-Site Request Forgery&#xff09;&#xff0c;中文名称&#xff1a;跨站请求伪造&#xff0c;是一种劫持用户在当前已登录的Web应用程序上执行非本意操作一种攻击.原理&#xff1a;攻击者利用目标用户的身份&#xff0c;执行某…...

Python3-面向对象

Python3 面向对象 Python从设计之初就已经是一门面向对象的语言&#xff0c;正因为如此&#xff0c;在Python中创建一个类和对象是很容易的。本章节我们将详细介绍Python的面向对象编程。 如果你以前没有接触过面向对象的编程语言&#xff0c;那你可能需要先了解一些面向对象…...

拐点!新能源车交付均价首次「低于」燃油车,智能电动成新爆点

2023年开局&#xff0c;随着特斯拉打响新能源汽车市场的「价格战」首炮&#xff0c;除部分燃油车品牌&#xff08;仍依赖自身多年的用户和品牌积累的溢价能力&#xff09;没有跟进之外&#xff0c;几乎所有的新能源车型都在进行车型价格的下调。 而数据也在反映市场的拐点即将来…...

JavaScript String 字符串对象实例合集

文章目录JavaScript String 字符串对象实例合集返回字符串的长度为字符串添加样式返回字符串中指定文本首次出现的位置 - indexOf()方法查找字符串中特定的字符&#xff0c;若找到&#xff0c;则返回该字符 - match() 方法替换字符串中的字符 - replace()JavaScript String 字符…...

实习生培养计划

部门最近入职了实习生&#xff0c;为了更好的帮助实习生完成由学生向职业人的转变&#xff0c;并尽快融入企业稳步成长&#xff0c;现提出实习生培养计划&#xff0c;具体方案如下&#xff1a; 1、方案目的 1、使实习生快速转换角色与心态&#xff0c;适应从校园到企业的坏境…...

【服务器管理】Wordpress服务器内存占用太高(优化方案详解)

简述 在刚刚配置完服务器之后&#xff0c;想着试一试wordpress这个功能&#xff0c;结果打开服务器后台&#xff0c;发现本来就不多的内存被占用了一大半。 我真的服了&#xff0c;我还啥都没干呢&#xff0c;就这么多的内存占用&#xff0c;那之后我开始弄了还得了。因此有必…...

【ECCV 2022】76小时动捕,最大规模数字人多模态数据集开源

随着元宇宙的火爆以及数字人建模技术的商业化&#xff0c;AI 数字人驱动算法&#xff0c;作为数字人动画技术链的下一关键环节&#xff0c;获得了学界和工业界越来越广泛的兴趣和关注。其中谈话动作生成 &#xff08;由声音等控制信号生成肢体和手部动作&#xff09;由于可以降…...

联合解决方案 | 亚信科技AntDB数据库携手浪潮K1 Power赋能关键行业数字化转型,助力新基建

自2022年印发《“十四五”数字经济发展规划》以来&#xff0c;我国数字化发展进入快车道。数据库作为数据存储与计算的基础软件&#xff0c;对筑牢数字经济底座至关重要。服务器是承载数据的重要载体&#xff0c;在数据库性能可以通过扩容而无上限提升的情况下&#xff0c;数据…...

Android 单元测试问题总结(Robolectric+JUnit)

代码单元测试问题总结&#xff1a; 1、测试类中引用第三方jar包类报错 问题原因&#xff1a; 测试的库中没有包含第三方jar包。 解决办法&#xff1a; 在app下gradle中加入第三方jar包配置&#xff1a; testImplementation files(‘libs/third.jar’) 2、自定义Shadow类不生…...

专项攻克——二叉树

文章目录一、二叉树定义、分类二、二叉树的存储结构三、创建二叉树四、遍历方式一、二叉树定义、分类 二叉树&#xff1a;是N个结点的有序集合&#xff0c;该集合或者为空集&#xff0c;或者由一个根节点跟两棵互不相交的、分别称为根节点的左子树或者右子树的二叉树组成。每个…...

PACS系统源码 PACS源码 三维重建PACS源码

一、系统概述&#xff1a; ​基于VC MSSQL开发的一套三甲医院医学影像PACS系统源码&#xff0c;集成3D影像后处理功能&#xff0c;包括三维多平面重建、三维容积重建、三维表面重建、三维虚拟内窥镜、最大/小密度投影、心脏动脉钙化分析等功能。系统功能强大&#xff0c;代码…...

利用Mysql存储过程造百万级数据

1.准备工作&#xff08;1&#xff09;由于是使用存储过程&#xff0c;mysql从5.0版开始支持存储过程&#xff0c;那么需要mysql的版本在5.0或者以上。如何查看mysql的版本&#xff0c;使用下面sql语句查看&#xff1a;&#xff08;2&#xff09;创建两张表&#xff0c;表结构一…...

Vue2组件之间的传值通信

父子组件Vue中常见的是父与子组件间的通信&#xff0c;所要用到的关键字段是props和$emit。props接受父组件传给子组件信息的字段&#xff0c;它的类型&#xff1a;Array<string> | Object;详细解释可以参考https://cn.vuejs.org/v2/api/#props$emit由子组件触发事件向上…...

Spring Boot官方例子《Developing Your First Spring Boot Application》无法运行

官方的第一个例子就卡住了&#xff1a; https://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#getting-started.first-application 按照要求&#xff0c;一步一步走&#xff1a; 查看Java版本和MVN版本&#xff1a; $ java -version openjdk version &quo…...

商城网站建设计划书/可以免费打开网站的软件下载

最近在bibi看了一个视频&#xff0c;Up主一步步引出Lambda的方式看着很精彩&#xff0c;本文做个分享。 【背景】 如下&#xff0c;部门有十名员工&#xff0c;过滤"35岁以上"&#xff0c;"薪资高于5000" 的员工&#xff0c;怎么做呢&#xff1f; public…...

公司网站怎样制作/广东疫情最新消息今天

小hunter&#xff0c;原名小兔&#xff0c;生物工程硕士。因为嫌弃现在工作的无聊和低工资&#xff0c;所以在老男孩那边报了一个班&#xff0c;6840&#xff0c;开始了我python之旅&#xff0c;向着生物信息学领域“进军”。 从一开始得很排斥编程&#xff0c;很讨厌debug&…...

java wordpress 案例/软文代发价格

1.substring 方法 定义和用法 substring 方法用于提取字符串中介于两个指定下标之间的字符。 语法 stringObject.substring(start,stop) 参数 描述 start 必需。一个非负的整数&#xff0c;规定要提取的子串的第一个字符在 stringObject 中的位置。 stop 可选…...

专业网站设计公司哪里有/深圳网络推广服务公司

临江仙 庭院深深深几许&#xff0c;云窗雾阁常扃&#xff0c;柳梢梅萼渐分明&#xff0c;春归秣陵树&#xff0c;人老建康城。 感月吟风多少事&#xff0c;如今老去无成&#xff0c;谁怜憔悴更凋零&#xff0c;试灯无意思&#xff0c;踏雪没心情。 最近啊&#xff0c;心里总是有…...

如何用visual做网站/网站推广属于哪些

k8s初级实战13--资源限制1 介绍2 资源限制用法2.1 内存限制2.2 cpu限制2.3 命名空间配额2.4 pv容量限制3 注意事项4 说明1 介绍 k8s 中常见的资源限制包括 内存、cpu、pv容量、pod数量等资源限制。本文主要对上述资源限制加以介绍&#xff0c;并通过案例对其进行相应测试。 2…...

南宁seo优化/苏州排名搜索优化

大量表格数据&#xff08;>10万条&#xff09;使用PLSQL快速导入Oracle数据预处理创建对应的表结构打开PLSQL的文本导入器工具1、打开plsql——》工具——》文本导入器&#xff0c;点击文本导入器&#xff0c;如下图&#xff1a;2、文本导入器界面如下图&#xff0c;点击文件…...