centos7 mysql启动失败_Mysql主从复制
好在,别人如何分析我,跟我本身是一点关系也没有的。(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)的一致了
执行步骤
第一步
主库记录二进制日志,在每次更新事件(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;
3.启动slave
mysql>start slave;
4.查看slave状态
mysql> mysql slave statusG
结果中有两个重要数据项:
Slave_IO_Running: Yes IO线程状态,必须YESSlave_SQL_Running: Yes SQL线程状态,必须YES
测试
我搭建了两套CentOS7环境,给大家演示一下.
mysql主从复制Testhttps://www.zhihu.com/video/1191670270795292672
扫码关注左羊公社,回复关键字“面试”,即可无套路获取JAVA面试资源。
更多精彩内容
请关注左羊公社
centos7 mysql启动失败_Mysql主从复制相关推荐
- CentOS7 mysql启动失败且无log的原因分析
用 systemctl start mysqld 启用mysql服务失败,失败后会有提示,让用 systemctl status mysqld 或者 journalctl -xe 来查看错误原因. s ...
- 硬盘满了 mysql启不来_MySQL数据库之磁盘已满造成的mysql启动失败问题分享
本文主要向大家介绍了MySQL数据库之磁盘已满造成的mysql启动失败问题分享 ,通过具体的内容向大家展现,希望对大家学习MySQL数据库有所帮助. 突然发现mysql死活都启不起来了: 复制代码 代 ...
- 大数据学习笔记33:解决CentOS7上MySQL启动失败问题
文章目录 一.查看安装的MySQL数据库版本 二.启动MySQL失败 1.启动MySQL,出现错误提示 2.执行systemctl status mysqld.service查看详情 3.执行jour ...
- mysql启动失败的一个解决方法
mysql启动失败的一个解决方法 参考文章: (1)mysql启动失败的一个解决方法 (2)https://www.cnblogs.com/notfresh/p/mysqlStartError.htm ...
- linus启动mysql失败_Linux下MySQL启动失败的解决一例
Linux下MySQL启动失败的解决一例: 当敲mysql命令时 Can't connect to local MySQL server through socket '/var/lib/mysql/ ...
- linux中的mysql启动失败(一直连续出现点点的状态)
linux中mysql启动失败,一直出现点点没有任何错误提示 后来发现应该是进程被占用而导致的, 输入命令 : ps aux |grep mysql* 查看mysql的开启进程状态,将开启的进程杀死以 ...
- linux mysql 安装启动失败,Linux服务器一键安装包的mysql启动失败
Linux服务器上用一键安装包配置的环境,启动mysql失败,提示如下错误信息: 排查方法: 1.查看服务器的磁盘空间是否正常,登录服务器执行命令 df -h 查看磁盘空间,如果服务器的系统盘或者数据 ...
- wamp php启动不成功,wamp的mysql 启动失败解决
wamp启动失败,查看原因是mysql 启动失败 首先查看mysql的启动日志 命令:mysqld --console 知道error报错的地方: 然后百度了此报错,解决方法 在my.ini中添加 i ...
- phpstudy_pro MySQL启动失败的原因
问题描述: 由于之前的phpstudy版本过于老旧,我对它进行了卸载,并又从官网上下载了最新版本的phpstudy,全新的UI界面由于我的操作失误带来了MySQL启动失败的问题. 老版本界面在这里插入 ...
最新文章
- 华为计算平台MDC810发布量产
- python项目部署失败的原因_python项目环境部署(一)
- 2017.11.7 Python 制作EFM32/ AVR批量烧录工具
- luogu P1361 小猫爬山 [iddfs]
- mac环境下node.js和phonegap/cordova创建ios和android应用
- Java中的Swing键盘绑定案例
- form表单file,select选择后自动提交
- 链家二手房信息爬取(内附完整代码)
- Chrome浏览器及调试教程
- this java 错误_java异常错误处理
- 录屏可以录声音吗?录制带声音的视频,这个方法轻松解决
- 转载:optparse模块OptionParser学习
- Excel利用公式向导快速设置成绩的评级系统!
- 历史名酒元氏益成永——宋曹贡酒
- iphone12与iphone11对比,iphone12购买指南
- PIN、PAN、PIN block说明
- 免费全功能响应式模板:黑暗元素
- C++ 设计模式(六)brigde模式
- 近期公司笔试题(4)
- win7 瘦身 减肥 记录!
热门文章
- 前端性能优化篇——浏览器同域名并发请求对限制
- Java Float类详解
- step7db块寻址_step7 根据db地址块怎样找I/O点
- 嵌入式linux镜像,使用Openembedded定制嵌入式Linux镜像
- python 操作系统学习_操作系统学习
- 乌龟量化估值怎么看_推荐几个查询指数估值的网址
- springboot jpa sql打印_SpringBoot集成Spring Data JPA以及读写分离
- 【性能测试】性能测试的基础理论
- 多任务场景下单线程异步多线程多进程
- Appium+Python移动端(Android)自动化测试环境搭建原来没有那么难!+ 带你实战去