MySql 主从模式原理及操作步骤
mysql是现在普遍使用的数据库,但是如果宕机了必然会造成数据丢失。为了保证mysql数据库的可靠性。就要会一些提高可靠性的技术。
主从复制原理如下。
slave(从服务器)
master(主服务器)
mysql主从是异步复制过程
master开启bin-log功能,日志文件用于记录数据库的读写增删
需要开启3个线程,master IO线程,slave开启 IO线程 SQL线程,
Slave 通过IO线程连接master,并且请求某个bin-log,position之后的内容。
MASTER服务器收到slave IO线程发来的日志请求信息,io线程去将bin-log内容,position返回给slave IO线程。
slave服务器收到bin-log日志内容,将bin-log日志内容写入relay-log中继日志,创建一个master.info的文件,该文件记录了master ip 用户名 密码 master bin-log名称,bin-log position。
slave端开启SQL线程,实时监控relay-log日志内容是否有更新,解析文件中的SQL语句,在slave数据库中去执行。
准备两个mysql,一个做主,一个做从。防火墙,selinux都要关闭,保证可以ping通对方
主服务器配置:
vi/etc/ntp.conf
解释:ntp服务,是用来使计算机时间同步化的一种协议,它可以使计算机对其服务器或时钟源(如石英钟,GPS等等)做同步化,它可以提供高精准度的时间校正(LAN上与标准间差小于1毫秒,WAN上几十毫秒),且可介由加密确认的方式来防止恶毒的协议攻击。时间按NTP服务器的等级传播。按照离外部UTC源的远近把所有服务器归入不同的Stratum(层)中。
添加:
server 127.127.1.0
fudge 127.127.1.0 stratum 8
service ntpd start #因为同步数据 两个服务器的时间也要同步。
稍后要在从服务器执行来同步时间
vi/etc/my.cnf
在配置文件49行
其他内容都可以保持默认。
---------------------------------------------------------------------------------------------------------
在主服务器登录mysql 给从服务器授权。
mysql> grant replication slave on *.* to zs@'192.168.43.%' identified by '123456';
授权用户zs 密码为123456 允许192.168.43.0的网络连接 一会儿要在slave上使用这个账号
---------------------------------------------------------------------------------------------------------
show master status; #此命令查看主服务器的bin-log日志文件名称和position点
从服务器就是要指定这个文件maste-bin.000001 (随着mysql增删修改日志文件名字也有可能改变) 和 107 (position点 主服务器增删修改都会改变)所以现在开始就不要再在主服务器创表干啥的了,
mysqldump -uroot -p --opt --all-databases >/all_databases.sql #导出主数据库的数据
scp -r /all_databases.sql root@192.168.43.2:/ #用scp把数据复制到从服务器。
因为主从复制是从主从关系建立完毕开始同步的。也就是现在 position 107之前的内容复制不了所以要手动复制主之前的数据导入从数据库。
从服务器配置:
/usr/sbin/ntpdate 192.168.43.22 #和主服务器同步时间。192.168.43.22为主服务器ip
mysql -u root -p </all_databases.sql #导入数据
vi /etc/my.cnf
修改后重启mysql服务
进入从服务器的mysql
change master to master_host='192.168.43.22',master_user='zs',master_password='123456',master_log_file='maste-bin.000001',master_log_pos=107;
start slave; #开启SQL线程
show slave status\G; 查看从服务器状态
注意两个都要是yes才是正常。
查看效果,在主服务器上创建个库看看。
从数据库也会有
同样删掉数据库从数据库也会复制。
主库上删除一个数据库。
从库上也没了。所以还是要备份数据库的。
MySql 主从模式原理及操作步骤相关推荐
- mysql主从复制安装部署配置操作步骤及主从库宕机处理办法
mysql主从复制安装部署配置操作步骤及主从库宕机处理办法 大家好,我是酷酷的韩~ 1.前期准备 (1)首先需要准备至少两台mysql 这里方便演示,用了两台虚拟机 环境是centos7 主: 172 ...
- MySQL 主从架构原理
MySQL 主从架构原理 一. 主从架构基本原理 上图展示的是 MySQL 的主从切换流程.在 State-1 中,客户端的读写都直接访问节点 A,而节点 B 是 A 的备库,只是将 A 的更新都同步 ...
- 关于Ubuntu 16.04系统挂载硬盘以及迁移MYSQL数据存储目录的操作步骤
转载链接 : 关于Ubuntu 16.04系统挂载硬盘以及迁移MYSQL数据存储目录的操作步骤 :https://www.jianshu.com/p/58093888ee25 本文背景: 现有项目系统 ...
- Mysql主从模式部署过程
MySQL主从模式可以从一个MySQL数据库服务器主节点复制到一个或多个从节点.本文使用 半同步复制模式 . mysql主从复制用途: 实时灾备,用于故障切换(高可用) 读写分离,提供查询服务(读扩展 ...
- mysql .net连接字符串,MySQL连接字符串的实际操作步骤汇总
此文章主要向大家描述的是MySQL连接字符串的实际操作步骤汇总,其中包括MySQL Connector/ODBC 2.50 (MyODBC 2.50)连接方式 ,MySQL Connector/ODB ...
- mysql 主从同步不一致_涨知识!MySQL 主从同步原理原来是这样的
什么是 MySQL 主从同步 当 master(主)库的数据发生变化的时候,变化会实时的同步到slave(从)库. 主从同步有什么好处 水平扩展数据库的负载能力 容错,高可用.Failover/Hig ...
- MySQL主从同步原理
主从复制,是用来建立一个和主数据库完全一样的数据库环境,称为从数据库:主数据库一般是准实时的业务数据库. 原理: 数据库有个bin-log二进制文件,记录了所有sql语句. 我们的目标就是把主数据库的 ...
- mysql主从的原理_Mysql主从的原理
通过MySQL主从同步,我们可以实现读写分离.数据备份和高可用性.主从同步的原理就是基于binlog进行数据同步的,binlog二进制日志记录了对数据库进行更新的事件, 比如insert.update ...
- mysql主从同步原理_mysql主从同步以及原理
mysql主从复制介绍 当前的生产工作中,大多数应用的mysql主从同步都是异步的复制方式,即不是严格实时的数据同步. 实时和异步: 同步复制: 指的是客户端连接到MySQL主服务器写入一段数据,My ...
最新文章
- P1525 关押罪犯(扩展域并查集/二分图)
- 外包 银行数字签名U盘的用法
- CentOS6.4 添加播放×××
- 关于如何修改Redmine系统中的字段问题解答
- 1.18.3.Flink Catalog介绍、Catalog 定义、Catalog 的实现、Catalog 使用举例
- Android 功耗(4)---MTK平台待机功耗分析流程
- UVA 10246 Asterix and Obelix
- 190402每日一句
- 软件测试答疑:抽奖按钮怎么测试?
- 微软半日游,和CSDN同学们走进名企
- 在java中class是什么意思_java 中Class? 中的?代表什么意思?
- flutter 实现文字竖排以及动画效果(文字逐一显示)
- frp服务实现内网穿透SSH远程内网虚拟机
- java遗传算法编程_遗传算法示例程序
- 感应开关垃圾桶小项目的完成及问题解决——基于STC89C52RC单片机
- NJU-ICS-linklab 从零开始复习程序的链接与ELF
- keil c51如何添加STC芯片的固件库文件
- Wi-Fi弱网传输优化不成功有感
- pptp连接服务器无响应,解决PPTP客户端拨号不成功
- 3D游戏恶魔与牧师(动作分离)
热门文章
- Hemberg-lab单细胞转录组数据分析(一)
- oracle临时表空间暴涨,如何解决Oracle临时表空间过大
- 洛谷 刷题 深基部分题解(python版)-2022.01.29
- php使用ftp远程上传文件类(解决主从文件同步问题的简单方法)
- oracle logfile sync,oracle等待事件3构造一个DirectPathwrite等待事件和构造一个LogFileSync等待事件...
- java scrollpane放按钮_java – 如何在BoxLayout上放置scrollPane?
- c语言除法加括号么,算不了除法,为什么?
- ltrim函数_MySQL|trim() 函数用法
- C++笔记-ClassA a和ClassA a()的区别与联系
- Qt工作笔记-对qmake的认识【两篇转载结合】