原理:

1master开启bin-log功能,日志文件用于记录数据库的读写增删
2需要开启3个线程,master IO线程,slave开启 IO线程 SQL线程,
3Slave 通过IO线程连接master,并且请求某个bin-log,position之后的内容。
4MASTER服务器收到slave IO线程发来的日志请求信息,io线程去将bin-log内容,position返回给slave IO线程。
5slave服务器收到bin-log日志内容,将bin-log日志内容写入relay-log中继日志,创建一个master.info的文件,该文件记录了master ip 用户名 密码 master bin-log名称,bin-log position。
6slave端开启SQL线程,实时监控relay-log日志内容是否有更新,解析文件中的SQL语句,在slave数据库中去执行。

步骤一:

准备两个mysql,一个做主,一个做从。防火墙,selinux都要关闭,保证可以ping通对方

主服务器配置:
vi/etc/ntp.conf

添加:

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主从复制原理介绍 一.复制的原理 MySQL 复制基于主服务器在二进制日志中跟踪所有对数据库的更改(更新.删除等等).每个从服务器从主服务器接收主服务器已经记录到其二进制日志的保存的更新,以 ...

  2. Mysql主从复制原理及搭建

    ## Mysql主从复制原理 主从复制是指一台服务器充当主数据库服务器,另一台或多台服务器充当从数据库服务器,主服务器中的数据自动复制到从服务器之中.对于多级复制,数据库服务器即可充当主机,也可充当从 ...

  3. mysql主从复制原理及实践

    Mysql主从复制原理及实践 mysql主从框架       MySQL主从架构是MySQL集群中最基本也是最常用的一种架构部署,能够满足很多业务需求,常见的有一主一从或者一主多从.可以防止单一主机的 ...

  4. mysql 主从复制原理

    主从形式   mysql主从复制 灵活 一主一从 主主复制 一主多从---扩展系统读取的性能,因为读是在从库读取的: 多主一从---5.7开始支持 联级复制---     用途及条件   mysql主 ...

  5. Mysql主从复制原理及配置

    Mysql主从复制原理及配置 1.复制概述 Mysql内建的复制功能是构建大型,高性能应用程序的基础.将Mysql的数据分布到多个系统上去,这种分布的机制,是通过将Mysql的某一台主机的数据复制到其 ...

  6. MySQL主从复制--原理

    简介 Mysql内建的复制功能是构建大型,高性能应用程序的基础.将Mysql的数据分布到多个系统上去,这种分布的机制,是通过将Mysql的某一台主机的数据复制到其它主机(slaves)上,并重新执行一 ...

  7. mysql 主从复制原理(转)

    本文转自https://blog.csdn.net/php_younger/article/details/59673879 mysql 主从复制原理 主从形式   mysql主从复制 灵活 一主一从 ...

  8. 如何实现 MySQL 的读写分离?MySQL 主从复制原理的是啥?如何解决 MySQL 主从同步的延时问题?

    如何实现 MySQL 的读写分离? 其实很简单,就是基于主从复制架构,简单来说,就搞一个主库,挂多个从库,然后我们就单单只是写主库,然后主库会自动把数据给同步到从库上去. MySQL 主从复制原理的是 ...

  9. 深度探索MySQL主从复制原理

    深度探索MySQL主从复制原理 一 .概要 MySQL Replication (MySQL 主从复制) 是什么? 为什么要主从复制以及它的实现原理是什么? 1.1 MySQL 主从复制概念 MySQ ...

随机推荐

  1. css改变鼠标指针的形状

    <html> <body> <span style="cursor:auto"> <br /> <span style=&qu ...

  2. element ui的照片墙 默认显示照片

    参考地址: element ui的照片墙 默认显示照片 照片显示的数据格式是:[{name: '', url: ''}],:file-list=""默认显示的图片 实际项目开发中需 ...

  3. Category VS Extension 原理详解

    (一)Category 1.什么是Category? category是Objective-C 2.0之后添加的语言特性,别人口中的分类.类别其实都是指的category.category的主要作用是 ...

  4. debian上安装tmux

    1.安装ncurses库 1.1.获取源码 wget https://invisible-island.net/datafiles/release/ncurses.tar.gz tar xvf ncu ...

  5. Scala高阶函数与泛型

    1. Scala中的函数 在Scala中,函数是“头等公民”,就和数字一样.可以在变量中存放函数,即:将函数作为变量的值(值函数). 2. scala中的匿名函数,即没有函数名称的函数,匿名函数常作为 ...

  6. 六:MVC数据建模(增删改查)

    今天我们来学习mvc增删改查等操作(试着结合前面学习的LINQ方法语法结合查询) 我创建了一个car的数据库,只有一个Cars表 表里面就几个字段 插入了一些数据 想要创建一个ADO.NET实体数据模 ...

  7. python遍历目录下所有文件

    # -*- coding:utf-8 -*- import os if __name__ == "__main__": rootdir = '.\data' list = os.l ...

  8. 02_ Flume的安装部署及其简单使用

    一.Flume的安装部署: Flume的安装非常简单,只需要解压即可,当然,前提是已有hadoop环境 安装包的下载地址为:http://www-us.apache.org/dist/flume/1. ...

  9. vsftpd的安装和配置

    1  安装vsftpd sudo apt-get install vsftpd 2  测试是否安装成功 sudo service vsftpd restart 如果有反应即成功 3  彻底卸载vsft ...

  10. Java中的集合List、ArrayList、Vector、Stack(三)

    List接口 List集合代表一个有序集合,集合中每一个元素都有其对应的顺序索引.List集合容许使用重复元素,可以通过索引来访问指定位置的集合对象. ArrayList和Vector实现类 Arra ...