MySQL的主从复制

一、mysql主从复制概述

1.主从复制简介

MySQL主从复制就是将一个MySQL实例(Master)中的数据实时复制到另一个MySQL实例(slave)中,而且这个复制是一个异步复制的过程。

实现整个复制操作主要由三个进程完成的,其中两个进程在Slave(sql_thread和IO_thread),另外一个进程在 Master(IO进程)上。

2.主从复制的机制

要实施复制,首先必须打开Master端的binary log(bin-log)功能,否则无法实现。因为整个复制过程实际上就是Slave从Master端获取该日志然后再在自己身上完全顺序的执行日志中所记录的各种操作。

复制的基本过程如下:

1)、Slave上面的IO_thread连接上Master,并请求从指定日志文件的指定位置(或者从最开始的日志)之后的日志内容;

2)、Master接收到来自Slave的IO_thread的请求后,通过负责复制的IO进程根据请求信息读取制定日志指定位置之后的日志信息,返回给Slave 的IO_thread。返回信息中除了日志所包含的信息之外,还包括本次返回的信息已经到Master端的bin-log file的以及bin-log pos;

3)、Slave的IO_thread接收到信息后,将接收到的日志内容依次添加到Slave端的relay-log文件的最末端,并将读取到的Master端的 bin-log的文件名和位置记录到master-info文件中,以便在下一次读取的时候能够清楚的告诉Master“我需要从某个bin-log的哪 个位置开始往后的日志内容,请发给我”;

4)、Slave的Sql_thread检测到relay-log中新增加了内容后,会马上解析relay-log的内容成为在Master端真实执行时候的那些可执行的内容,并在本数据库中执行。

首先安装好数据库

MySQL5.7安装启动

(1)安装包 
mysql-community-client-5.7.17-1.el6.x86_64.rpm 
mysql-community-common-5.7.17-1.el6.x86_64.rpm 
mysql-community-libs-5.7.17-1.el6.x86_64.rpm 
mysql-community-libs-compat-5.7.17-1.el6.x86_64.rpm 
mysql-community-server-5.7.17-1.el6.x86_64.rpm


yum install mysql(client server common libs libs-compat) -y这五个同时安装 互相有依赖性

然后  我们执行cat /var/log/mysqld.log |grep temporary可以看到密码

MySQL的主从复制_第1张图片

然后执行mysql_secure_installation 修改密码 密码长度大于等于8位有数字字母大小写特殊符号

MySQL的主从复制_第2张图片


MySQL主从复制搭建主要步骤有:Master端配置部署、Slave端配置部署、建立主从同步

1)配置主配置文件(/etc/my.cnf)

vim /etc/my.cnf

MySQL的主从复制_第3张图片

然后重启数据库服务



(2)配置数据库 
##在主库上建立帐户并授权



##查看二进制日志是否打开

MySQL的主从复制_第4张图片

##查看主库的状态

MySQL的主从复制_第5张图片

mysq从库(slave)

(1)配置文件(/etc/my.cnf)

MySQL的主从复制_第6张图片


(2)配置数据库



  • 当看到Slave_IO_Running: Yes以及Slave_SQL_Running: Yes,则表示slave库已经正常运行了
  • 当出现Slave_IO_Running: Connecting的提示时,说明主库和从库没有连接上,有以下三点原因:
  • 1.网络问题:检查网络连接是否能够连接上
  • 2.密码或POS号错误:查看pos号和主库的号是否对应
  • 3.防火墙的问题:查看主库防火墙的策略,数据库是否拒绝外来连接,然后做相应的改动

  • 如下图所示连接似乎有些问题????。。。。

MySQL的主从复制_第7张图片


 

主从测试

我们可以在主库的数据库中创建列表用户然后在从库的数据库中查看到。。

你可能感兴趣的:(MySQL的主从复制)