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 主从模式原理及操作步骤相关推荐

  1. mysql主从复制安装部署配置操作步骤及主从库宕机处理办法

    mysql主从复制安装部署配置操作步骤及主从库宕机处理办法 大家好,我是酷酷的韩~ 1.前期准备 (1)首先需要准备至少两台mysql 这里方便演示,用了两台虚拟机 环境是centos7 主: 172 ...

  2. MySQL 主从架构原理

    MySQL 主从架构原理 一. 主从架构基本原理 上图展示的是 MySQL 的主从切换流程.在 State-1 中,客户端的读写都直接访问节点 A,而节点 B 是 A 的备库,只是将 A 的更新都同步 ...

  3. 关于Ubuntu 16.04系统挂载硬盘以及迁移MYSQL数据存储目录的操作步骤

    转载链接 : 关于Ubuntu 16.04系统挂载硬盘以及迁移MYSQL数据存储目录的操作步骤 :https://www.jianshu.com/p/58093888ee25 本文背景: 现有项目系统 ...

  4. Mysql主从模式部署过程

    MySQL主从模式可以从一个MySQL数据库服务器主节点复制到一个或多个从节点.本文使用 半同步复制模式 . mysql主从复制用途: 实时灾备,用于故障切换(高可用) 读写分离,提供查询服务(读扩展 ...

  5. mysql .net连接字符串,MySQL连接字符串的实际操作步骤汇总

    此文章主要向大家描述的是MySQL连接字符串的实际操作步骤汇总,其中包括MySQL Connector/ODBC 2.50 (MyODBC 2.50)连接方式 ,MySQL Connector/ODB ...

  6. mysql 主从同步不一致_涨知识!MySQL 主从同步原理原来是这样的

    什么是 MySQL 主从同步 当 master(主)库的数据发生变化的时候,变化会实时的同步到slave(从)库. 主从同步有什么好处 水平扩展数据库的负载能力 容错,高可用.Failover/Hig ...

  7. MySQL主从同步原理

    主从复制,是用来建立一个和主数据库完全一样的数据库环境,称为从数据库:主数据库一般是准实时的业务数据库. 原理: 数据库有个bin-log二进制文件,记录了所有sql语句. 我们的目标就是把主数据库的 ...

  8. mysql主从的原理_Mysql主从的原理

    通过MySQL主从同步,我们可以实现读写分离.数据备份和高可用性.主从同步的原理就是基于binlog进行数据同步的,binlog二进制日志记录了对数据库进行更新的事件, 比如insert.update ...

  9. mysql主从同步原理_mysql主从同步以及原理

    mysql主从复制介绍 当前的生产工作中,大多数应用的mysql主从同步都是异步的复制方式,即不是严格实时的数据同步. 实时和异步: 同步复制: 指的是客户端连接到MySQL主服务器写入一段数据,My ...

最新文章

  1. P1525 关押罪犯(扩展域并查集/二分图)
  2. 外包 银行数字签名U盘的用法
  3. CentOS6.4 添加播放×××
  4. 关于如何修改Redmine系统中的字段问题解答
  5. 1.18.3.Flink Catalog介绍、Catalog 定义、Catalog 的实现、Catalog 使用举例
  6. Android 功耗(4)---MTK平台待机功耗分析流程
  7. UVA 10246 Asterix and Obelix
  8. 190402每日一句
  9. 软件测试答疑:抽奖按钮怎么测试?
  10. 微软半日游,和CSDN同学们走进名企
  11. 在java中class是什么意思_java 中Class? 中的?代表什么意思?
  12. flutter 实现文字竖排以及动画效果(文字逐一显示)
  13. frp服务实现内网穿透SSH远程内网虚拟机
  14. java遗传算法编程_遗传算法示例程序
  15. 感应开关垃圾桶小项目的完成及问题解决——基于STC89C52RC单片机
  16. NJU-ICS-linklab 从零开始复习程序的链接与ELF
  17. keil c51如何添加STC芯片的固件库文件
  18. Wi-Fi弱网传输优化不成功有感
  19. pptp连接服务器无响应,解决PPTP客户端拨号不成功
  20. 3D游戏恶魔与牧师(动作分离)

热门文章

  1. Hemberg-lab单细胞转录组数据分析(一)
  2. oracle临时表空间暴涨,如何解决Oracle临时表空间过大
  3. 洛谷 刷题 深基部分题解(python版)-2022.01.29
  4. php使用ftp远程上传文件类(解决主从文件同步问题的简单方法)
  5. oracle logfile sync,oracle等待事件3构造一个DirectPathwrite等待事件和构造一个LogFileSync等待事件...
  6. java scrollpane放按钮_java – 如何在BoxLayout上放置scrollPane?
  7. c语言除法加括号么,算不了除法,为什么?
  8. ltrim函数_MySQL|trim() 函数用法
  9. C++笔记-ClassA a和ClassA a()的区别与联系
  10. Qt工作笔记-对qmake的认识【两篇转载结合】