mysql主从_MySQL主从原理及配置详解

MySQL主从配置及原理,供大家参考,具体内容如下

一、环境选择:

1.Centos 6.5

2.MySQL 5.7

二、什么是MySQL主从复制

MySQL主从复制是其最重要的功能之一。主从复制是指一台服务器充当主数据库服务器,另一台或多台服务器充当从数据库服务器,主服务器中的数据自动复制到从服务器之中。对于多级复制,数据库服务器即可充当主机,也可充当从机。MySQL主从复制的基础是主服务器对数据库修改记录二进制日志,从服务器通过主服务器的二进制日志自动执行更新。

三、MySQL主从复制的类型

1.基于语句的复制

主服务器上面执行的语句在从服务器上面再执行一遍,在MySQL-3.23版本以后支持。

缺点:时间上可能不完全同步造成偏差,执行语句的用户也可能是不同一个用户。

2.基于行的复制

把主服务器上面改编后的内容直接复制过去,而不关心到底改变该内容是由哪条语句引发的,在MySQL-5.0版本以后引入。

缺点:比如一个工资表中有一万个用户,我们把每个用户的工资+1000,那么基于行的复制则要复制一万行的内容,由此造成的开销比较大,而基于语句的复制仅仅一条语句就可以了。

3.混合类型的复制

MySQL默认使用基于语句的复制,当基于语句的复制会引发问题的时候就会使用基于行的复制,MySQL会自动进行选择。

在MySQL主从复制架构中,读操作可以在所有的服务器上面进行,而写操作只能在主服务器上面进行。主从复制架构虽然给读操作提供了扩展,可如果写操作也比较多的话(多台从服务器还要从主服务器上面同步数据),单主模型的复制中主服务器势必会成为性能瓶颈。

四、原理

1.主从(master-slave)

主服务器上面的任何修改都会保存在二进制日志Binary log里面,从服务器上面启动一个I/O thread(实际上就是一个主服务器的客户端进程),连接到主服务器上面请求读取二进制日志,然后把读取到的二进制日志写到本地的一个Realy log里面。从服务器上面开启一个SQL thread定时检查Realy log,如果发现有更改立即把更改的内容在本机上面执行一遍。

fae822e10871c2b90c1ed2a1b97acbf2.png

2.主从从(master-slave-slave)

一主多从的话,这时主库既要负责写又要负责为几个从库提供二进制日志。此时可以稍做调整,将二进制日志只给某一从,这一从再开启二进制日志并将自己的二进制日志再发给其它从。或者是干脆这个从不记录只负责将二进制日志转发给其它从,这样架构起来性能可能要好得多,而且数据之间的延时应该也稍微要好一些。

cfeb1739f85f98660bfa4d2a6ff97d1b.png

【注意】

1.在老版本的MySQL中,主从复制的slave段并不是由两个进程完成的,而是由一个进程完成的,之后就出现了很多风险和性能的相关问题。具体有以下问题:

1.一个进程会使复制bin-log日志和解析日志并在自身执行的过程成为一个串行的过程,性能受到了一定的限制,异步复制的延迟也会比较长。

2. Slave端从Master端获取bin-log过来之后,需要接着解析日志内容,然后在自身执行。在这个过程中,Master端可能又产生了大量变化并新增了大量的日志。如果在这个阶段Master端的存储出现了无法修复的错误,那么在这个阶段所产生的所有变更都将永远无法找回。如果在Slave端的压力比较大的时候,这个过程的时间可能会比较长。

五、MySQL主从复制的过程

1.两种情况:同步复制和异步复制,生产环境中大多数采用异步复制。

2. 复制的基本过程:

1.slave上面的I/O进程连接上master,并请求从指定文件的指定位置(或者从最开始的日志)之后的日志内容。

2.Master接收到来自Slave的IO进程的请求后,负责复制的IO进程会根据请求信息读取日志指定位置之后的日志信息,返回给Slave的IO进程。返回信息中除了日志所包含的信息之外,还包括本次返回的信息已经到Master端的bin-log文件的名称以及bin-log的位置。

3.Slave的IO进程接收到信息后,将接收到的日志内容依次添加到Slave端的relay-log文件的最末端,并将读取到的Master端的 bin-log的文件名和位置记录到master-info文件中,以便在下一次读取的时候能够清楚的告诉Master“我需要从某个bin-log的哪个位置开始往后的日志内容,请发给我”。

4.Slave的Sql进程检测到relay-log中新增加了内容后,会马上解析relay-log的内容成为在Master端真实执行时候的那些可执行的内容,并在自身执行。

六、配置:

1.首先明确两种情况:

1.两台相互独立的服务器或虚拟机。

2.两台通过模板创建的虚拟机。

2.下面对两台服务器进行命名,分别为:MySQL主服务器,MySQL从服务器。

3.主从服务器分别进行如下操作:

1.MySQL版本一致

2.初始化表

4.修改MySQL主服务器和MySQL从服务器:

vim /etc/my.cnf

[mysqld]

log-bin=取任意名称 //启用二进制日志

server-id=任意取数字 //服务器唯一ID,默认值是1,一般设置为IP地址的最后一段数字

5.若是第一种情况,直接重启两台服务器;若是第二种情况,还需将两台服务器的auto.cnf文件重命名为auto.cnf.bak,然后重启MySQL服务。

6.在MySQL主服务器上建立账户并授权slave

grant replication slave on *.* to '用户名'@'%' identified by '任意密码';

7.查询MySQL主服务器的状态

show master status;

8.配置MySQL从服务器

change master to

master_host='MySQL主服务器IP地址',

master_user='之前在MySQL主服务器上面创建的用户名',

master_password='之前创建的密码',

master_log_file='MySQL主服务器状态中的二进制文件名',

master_log_pos='MySQL主服务器状态中的position值';

9.启用slave

start slave;

10.查看MySQL从服务器的状态

show slave status\G

查看

Slave_IO_Running: Yes //此状态必须YES

Slave_SQL_Running: Yes //此状态必须YES

全变YES说明主从配置成功,当MySQL主服务器有更新变化时,从服务器会根据具体配置做相应的同步。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

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

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

相关文章

引导修复 不是活动的_河南省视频数据修复中心

河南省视频数据修复中心 lk6afds河南省视频数据修复中心 文件预览我找到了我要恢复文件,可是,这个文件能能正确恢复呢。没有用的文件不可以删掉吗。我们先来看看盘文件夹都是什么吧。(以下仅限于~系统)一般来说,刚刚安装的电脑系统盘主要包含…

企业日志分析 五大问题需重点注意

资讯 | 安全 | 论坛 | 下载 | 读书 | 程序开发 | 数据库 | 系统 | 网络 | 电子书 | 微信学院 | 站长学院 | 源码 | QQ | 专栏 | 考试 | 系统安全| 网站安全| 企业安全| 网络安全| 工具软件| 杀毒防毒| 加密解密|首页 > 安全 > 企业安全 > 正文企业安全…

sqlite换成mysql_从SQLITE的数据转到MYSQL

接同事需求,要求从SQLITE的数据转到MYSQL,这东西以前也没接触过。这里搜搜,那里试试,下面把过程列一下。主要过程分三步:1,把SQLITE表结构导出来,作一定的格式调整2,把SQLITE数据导出…

python学习笔记(一):python入门

上周六终于开始接触心心念念的python了,本人学习语言算是零基础,java语法比较复杂,所以选择了一个语法相对还是比较简单,而且现在使用也是越来越广泛的python进行了学习。下面就言归正传吧 在学习python之前先来了解下现今比较流行…

MySQL查询优化之explain的深入解析

在分析查询性能时,考虑EXPLAIN关键字同样很管用。EXPLAIN关键字一般放在SELECT查询语句的前面,用于描述MySQL如何执行查询操作、以及MySQL成功返回结果集需要执行的行数。explain 可以帮助我们分析 select 语句,让我们知道查询效率低下的原因,从而改进我…

怎么验证proftpd安装成功_英雄联盟手游泰服安卓账号怎么注册

英雄联盟手游中泰服安卓账号怎么注册?泰服安卓账号的注册流程是怎样的?泰服安卓账号的注册与其他服安卓账号的注册是否一致?接下来就给介绍下手游中泰服安卓账号的注册,希望对各位玩家能有所帮助。英雄联盟游戏新泰服安卓账号怎样…

oracle实现mysql的if_oracle中decode函数 VS mysql中的if函数和case函数

oracle中有decode函数,如下:select sum(decode(sex,男,0,1)) 男生数 from school;统计男生数目,含义为:decode()中sex字段为男时,用1代替,然后计算总和而mysql中没有该函…

mysql 删掉重复数据

--不知道为啥这个mysql外边还要包一层,不然就报错DELETE FROMcourse WHEREname IN ( select mm.name from (SELECTa.name as nameFROMcourse aGROUP BYa. NAMEHAVINGcount(a.NAME) > 1)mm) AND id NOT IN ( select nn.id from (SELECTmin(id) as idFROMcours…

spring中用到哪些设计模式

1.工厂模式,这个很明显,在各种BeanFactory以及ApplicationContext创建中都用到了; 2.模版模式,这个也很明显,在各种BeanFactory以及ApplicationContext实现中也都用到了; 3.代理模式,在Aop实现中…

visio对象放入word显示不全_办公人士必学visio技能 手把手教你使用visio绘制项目全景图!...

Hi,大家好!我是爱踢汪。今天本汪想问问你用什么总结项目,Word、PPT还是视频?下面我们聊聊画图。画图固然是为了好看,视觉上的冲击加深印象。更重要的是,图像模型带来的“潜台词”,有意想不到的效果&#xf…

java 回调函数很好懂

首先先介绍回调函数的概念。比如客户端client,想要调用服务器端server的某个函数为你提供服务。比如炒西红柿炒蛋,cookTomato() 这时候,服务器端说,你先付钱才能为你服务,这时候服务器端要调用客户端的getMoney().才能…

mongoDB操作详细

简介 它和我们使用的关系型数据库最大的区别就是约束性,可以说文件型数据库几乎不存在约束性,理论上没有主外键约束,没有存储的数据类型约束等等 关系型数据库中有一个 "表" 的概念,有 "字段" 的概念,有 "数据条目" 的概念 MongoDB中也同样有以上…

mysql 存储过程 on_MySQL存储过程的权限问题小结

MySQL的存储过程,没错,看起来好生僻的使用场景。问题源于一个开发同学提交了权限申请的工单,需要开通一些权限。本来是一个很正常的操作,但在我来看是比较着急且紧迫的,说来惭愧,忙着方向规划和开发的事情&…

搜索引擎蜘蛛爬虫原理

permike 原文 搜索引擎蜘蛛爬虫原理 关于搜索引擎的大话还是少说些,下面开始正文搜索引擎蜘蛛爬虫原理: 1 聚焦爬虫工作原理及关键技术概述 网络爬虫是一个自动提取网页的程序,它为搜索引擎从Internet网上下载网页,是搜索引擎的重…

《Android开发艺术探索》读书笔记 (10) 第10章 Android的消息机制

第10章 Android的消息机制 10.1 Android消息机制概述 (1)Android的消息机制主要是指Handler的运行机制,其底层需要MessageQueue和Looper的支撑。MessageQueue是以单链表的数据结构存储消息列表但是以队列的形式对外提供插入和删除消息操作的消息队列。MessageQueue只…

mysql索引引擎_mysql搜索引擎和索引那些事

mysql的存储引擎三种存储方式**InnoDB **(默认)一个文件存储表结构,一个存储数据和目录(索引)# 一个文件 book_name | author| press | price | pub_date frm文件 frame的缩写# 另一个文件(数据 目录)# | 倚天屠龙记 | egon | 北京工业地雷出版社 | 70.00 | 2019-07…

SPOJ HIGH Highways ——Matrix-Tree定理 高斯消元

【题目分析】 Matrix-Tree定理高斯消元 求矩阵行列式的值&#xff0c;就可以得到生成树的个数。 至于证明&#xff0c;可以去看Vflea King&#xff08;炸树狂魔&#xff09;的博客 【代码】 #include <cmath> #include <cstdio> #include <cstring> #include…

深度ip转换器手机版app_房串串经纪人版app下载-房串串经纪人版app手机版 v1.0.0...

房串串经纪人版app&#xff1a;专门为房产经纪人打造的辅助办公软件&#xff0c;提供的功能非常的全面&#xff0c;涵盖了房产服务过程中的各个环节&#xff0c;随时可以手机在线处理自己的日常工作&#xff0c;提高了工作的效率&#xff0c;操作很简单&#xff0c;让你更好的实…

netduino之电源参考电路MC33269DT-5.0G

手里有块netduino的板子&#xff0c;一直闲置未用&#xff0c;netduino具体是什么不知道的就百度吧&#xff0c;我这也不是主要讲netduino开发的&#xff0c;简单说就是用.net开发硬件&#xff0c;了解到netduino也是原来学过C#&#xff0c;当然我主要的工作还是嵌入式硬件开发…

汉王考勤 连接mysql_汉王考勤管理软件打开时出现:连接数据错误,请确认数据库服务器信息是否有误。这样该怎样解决?...

汉王指纹考勤系统故障答疑1. 考勤钟上的指纹记录丢失了。答&#xff1a;没有可能自己丢失&#xff0c;只可能是误删除了指纹信息&#xff0c;只能重新登录指纹。2. 在预处理时时间过长。答&#xff1a;由于用户单位的人员多&#xff0c;软件设置的班次乱等因素造成&#xff1b;…