centos7 mysql启动失败_Mysql主从复制

1f47698056641fc0bc1fb67e94f254f8.png

​好在,别人如何分析我,跟我本身是一点关系也没有的。(by 三毛)

主从复制的常见用途

1.数据备份

对备份来说,复制是一项很有意义的技术补充,但复制既不是备份也不能取代备份

2.负载均衡(读写分离)

通过MySQL主从复制,可以把写操作放在主库(master),读取操作放在多个从库(slave),能够很好的将负载分离到不同的MySQL服务器上,从而减轻单一数据库的操作压力

3.高可用性和故障切换

复制能够帮助应用程序避免MySQL单点失败,当主库(master)发生故障后,可以立马切换到从库(slave),降低服务器数据风险。

4.MySQL升级测试

使用一个更高版本的MySQL作为备库,保证在升级全部实例前,查询能够在备库预期执行

主从复制的原理

面试题:1 主从复制是如何工作的?2 简单介绍下主从复制的基本原理?

Plus版

1.主库将数据更改记录到二进制日志(Binary Log)

2.从库将主库上的日志复制到自己的中继日志(Relay Log)中

3.从库读取中继日志中的事件,将其重放到从库数据之上

大众

主库(master)记录下自己的操作日志,授权从库可以读取操作日志,从库(slave)会开启两个线程。

  • IO线程 负责连接主库(master) 连接成功后,睡眠并等待主库(master)产生新的事件,有新的就保存到自己的中继日志中,中继日志通常位于操作系统的缓存中,所以开销很小。
  • sql进程 负责执行中继日志中的sql操作,这样从库(slave)的内容就和主库(master)的一致了

执行步骤

e4622198c78eb33b7005cb75b4c12c72.png

第一步

主库记录二进制日志,在每次更新事件(update、insert、delete)事务提交前,主库会将数据更新的事件写入二进制日志中(Binary Log)

第二步

从库会启动一个工作线程(I/O线程),I/O线程会跟主库建立一个客户端连接,然后主库会启动一个特殊的二进制转储(binlog dump)线程,这个线程会读取主库中的二进制日志中的事件并将其读到的binlog的内容发到从库

第三步

从库的SQL线程执行最后一步,该线程从中继日志中读取更新事件并在从库执行,从而实现从库的数据更新

配置主从复制(以Centos 7 为例)

首先

停止对主库(master)数据库的操作,把主库(master)中的数据库全部导入到从库(slave),使两边数据库完全一致。

小提示 主从配置需要注意的点1 主从服务器操作系统版本和位数一致2 主库和从库的版本保持一致(注:从库的版本可以高于主库,但一定不能低于主库)3 主库和从库的数据要一致4 主库开启二进制日志,主库和从库的server_id在局域网内必须各自唯一

主库(master)配置

1.创建复制账号

MySQL会给一些特殊权限到复制线程,从库的I/O线程会创建一个连接到主库的TCP/IP连接,这就需要主库上创建一个复制用户,并赋予其合适的权限,语句如下

mysql> GRANT REPLICATION SLAVE,REPLICATION CLIENT ON *.* TO repl@'%' IDENTIFIED BY '123456';

2.修改主库的配置文件

修改master的配置文件,使用二进制日志,指定server-id,重启服务。

cd /etc/vi my.cnf

添加如下配置

log_bin=mysql-bin //[*]启用二进制日志server_id=10 //[*]服务器唯一ID

配置完成后需要重启mysqlserver才能生效。

systemctl restart mysqld

3.检查二进制日志文件名

mysql> show master status;

从库(slave)配置

1.修改配置文件my.cnf

vi /etc/my.cnf

添加如下配置

log_bin=mysql-binserver_id=2relay_log=/var/lib/mysql/mysql-relay-binlog_slave_updates=1read_only=1

2.将从库(slave)指向主库(master)

CHANGE MASTER TO MASTER_HOST='你主库的IP地址',MASTER_USER='你创建的复制用户名',MASTER_PASSWORD='密码',MASTER_LOG_FILE='你的二进制日志文件名',MASTER_LOG_POS=主库查到的Position;

e672ca90b846b5fd6ee9e26fcaa6433e.png

3.启动slave

mysql>start slave;

4.查看slave状态

mysql> mysql slave statusG

结果中有两个重要数据项:

Slave_IO_Running: Yes IO线程状态,必须YESSlave_SQL_Running: Yes SQL线程状态,必须YES

测试

我搭建了两套CentOS7环境,给大家演示一下.

d0a56bedc7c387e7a24970b1371e1686.png
mysql主从复制Testhttps://www.zhihu.com/video/1191670270795292672

61f36d8dd4724adc5fe1efca4024c1d9.gif

扫码关注左羊公社,回复关键字“面试”,即可无套路获取JAVA面试资源​。​

4d45f6e366afd0c9be0c2a2a8675f0c4.png

更多精彩内容

请关注左羊公社

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

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

相关文章

【原创】shadowebdict开发日记:基于linux的简明英汉字典(三)

全系列目录: 【原创】shadowebdict开发日记:基于linux的简明英汉字典(一)【原创】shadowebdict开发日记:基于linux的简明英汉字典(二)【原创】shadowebdict开发日记:基于linux的简明…

计算机应用基础知道,谁知道计算机应用基础练习题的答案?

谁知道计算机应用基础练习题的答案?46.简述美籍匈牙利数学家冯诺依曼(Von Neumann)在1946年提出的关于计算机的体系结构和“程序存储”的设计思想。47.简要说明Windows98中安装存放在CD—ROM上的应用程序的操作过程。48.简述Windo…

springboot分页展示功能_springboot实现分页

这里项目是springboot,mybatis,thymeleaf,实现我自制的商城项目后台页面的分页功能。参考我之前总结的分页,简单的处理一下就可以了上代码首先写一个超链接跳转到controller层的方法商品管理然后写后台controller层代码/*** 后台商…

Delphi中的基础数据类型

参考http://www.cnblogs.com/del/archive/2007/12/04/982167.html 在学习之初,在这么多的数据类型中,最好记住这五种标准数据类型(整型、实型、字符型、字符串型、布尔类型)和这五种类型中的最常用的类型,其他类型在以…

计算机程序编辑器中文版,小说编辑器(Atomic Scribbler)

AtomicScribbler是一款功能强大的电脑小说编辑器,快速编辑、创作你的小说,也可以直接导入文本二次编辑,内置了丰富的文字编辑工具,完全能够满足日常创作小说、编辑文字使用需求。。相关软件软件大小版本说明下载地址AtomicScribbl…

信号与系统sa函数求积分_瞎扯数学分析微积分(1~4)

算法数学之美日期:2019年10月30日正文共:12013字0图预计阅读时间:31分钟来源:豆瓣 wxmang这一篇帖子主要介绍人类如何从一个基于几何直观或直觉的计算技巧或计算方法,进化到逻辑基础严密的公理体系的例子,想说明人类抽…

Cocos2D研究院之CCNode详解(三)

http://www.xuanyusong.com/archives/950 上一章我们了解了cocos2d的项目路径以及工作原理,这次作者要真刀真枪地讲解代码了,咱们先来看看cocos2d最常用、也是作者认为最核心的类——CCNode。 之前说过,cocos2d的所有类都以CC开头&#xff0c…

大一计算机导论期中考试,大一计算机导论试题

大一计算机导论试题1. 用一个字节表示无符号整数,其最大值是十进制数( )。A. 256 B. 255 C. 127 D. 1282. 一个完整的计算机系统应包括( )。A. 运算器、控制器和存储器 B. 主机和应用程序C. 硬件系统和软件系统 D. 主机和外部设备3. 微机中的CPU是指( )。A. 内存和运…

eplan怎样创建和修改图框_EPLAN标题页及图框的设计

标题页理解为特殊的表格,选择“工具”--“主数据”--“表格”---“打开”,弹出“打开表格”对话框,文件类型“标题页/封页.f26”,选择需要打开的表格,点击打开按钮,表格中的元素:1.文本:表示普通…

计算机第二课堂教学计划,小学的第二课堂教学计划

小学的第二课堂教学计划开展内容丰富,形式多样的第二课堂活动,通过活动,使学生受到爱国主义及道德情感教育,掌握技能,全面提高他们的素质,使其成为全面发展的一代新人。下面是小编分享给大家的小学的第二课…

webstorm两个文件比对_webstorm怎么更改文件名称?或者是重命名

在开发的过程中,我们一个项目中会有很多的文件,每个文件中也会有很多的层级关系,有时候新建一个文件的时候,一不下心就会出错,位置出错我们可以移动更换位置,名称命名错误,我们可以重命名&#…

using

using关键字有两个主要用途: 作为指令,为命名空间创建别名或导入其他命名空间中的类型。作为语句,定义一个范围,在此范围的末尾将释放对象。using指令 using指令有两个用途: 导入其他命名空间中的类型:usin…

秒懂物理计算机出题规划,57张动图, 让你秒懂高中物理原理! 考试次次拿第一

原标题:57张动图, 让你秒懂高中物理原理! 考试次次拿第一物理不像语文或者英语,文科的东西记的东西偏多,理解的成分偏少,但物理理解的成分很重,要死记硬背的东西反而很少。要想把物理学好,先要把简单的概念…

matlab机器人自动分拣_极智嘉分拣系统落地 助力打造智慧物流引擎

全球AMR引领者极智嘉(Geek)近日宣布已为知名跨境电商企业棒谷科技(Banggood)部署全柔性智能AMR分拣系统,以支持棒谷科技日益增长的海外跨境电商业务需求。棒谷科技业务体系遍及全球200多个国家。随着电商业务的加速转变,棒谷科技的发展面临线上销售增长快、业务需求难以预测、劳…

$arr['id'],$arr[id]的区别

说白了区别就是当不加的时候我们首先会考虑的是这个id是不是一个常量 例如: define("abc",ABC); 那么实际上$arr[id] $arr[ABC]; 所以在这个过程中就会多加了一步操作。那么引申一个问题就是 在$arr取值时尽量使用单引号就会比直接写或者加双引号就会更快…

n分频器 verilog_时钟分频系列——分数分频电路的Verilog实现

IC君的第47篇原创文章上一篇文章时钟分频系列——偶数分频/奇数分频/分数分频,IC君介绍了各种分频器的设计原理,其中分数分频器较为复杂,这一篇文章IC君再跟大家聊聊分数分频的具体设计实现。一个分数分频器由两部分组成:以ZN和ZN…

通过gdb调试分析Linux内核的启动过程

作者:吴乐 山东师范大学 《Linux内核分析》MOOC课程http://mooc.study.163.com/course/USTC-1000029000 一、实验流程 1.打开环境 执行命令:cd LinuxKernel/ 执行命令:qemu -kernel linux-3.18.6/arch/x86/boot/bzImage -initrd rootfs.img M…

清除服务器上传队列的文件,webUploader上传demo

最近,要做文件上传功能,在同事推荐下,选择了webUploader插件。WebUploader是由Baidu WebFE(FEX)团队开发的一个简单的以HTML5为主,FLASH为辅的现代文件上传组件,详情请看官网(直接百度webUploader,应该是第…

HappyLeetcode64:Sqrt(x)

Implement int sqrt(int x). 这道题本质上是求sqrt(x)下最大的整数。二分查找是比较容易想到的方法。另&#xff0c;在网上又学习了下别人的牛顿迭代法。 这是我原来的写法&#xff0c;写入是错误的&#xff0c;复杂度太高 class Solution { public:int sqrt(int x) {if (x <…

德云斗笑社何九华为什么没参加_狗狗的身体卡在了门上,女主人低头一看忍不住笑了:这是膨胀了...

大家应该有看过长得像煤气罐一样体型圆圆的狗狗吧&#xff1f;它们可能是因为疾病导致的&#xff0c;也可能是被主人喂得过于肥胖了。这个故事中的狗狗被过分宠溺&#xff0c;才短短的几个月&#xff0c;它居然画风突变&#xff0c;不禁想问这是去参加宠物变形记了吗&#xff1…