MySQL 主从复制:原理、配置

1. 传统主从复制的基本原理:

        1)、Mysql Slave端的IO进程连接上Master,向Master请求指定日志文件的指定位置(或者从最开始的日志)之后的日志内容;

        2)、Master接收到来自Slave的IO进程的请求后,负责复制的IO进程根据Slave的请求信息,读取相应日志内容,返回给Slave 的IO进程。并将本次请求读取的bin-log文件名及位置一起返回给Slave端。
        3)、Slave的IO进程接收到信息后,将接收到的日志内容依次添加到Slave端的relay-log文件的最末端,并将读取到的Master端的 bin-log的文件名和位置记录到master-info文件中,以便在下一次读取的时候能够清楚的告诉Master"我需要从某个bin-log的哪个位置开始往后的日志内容,请发给我";
        4)、Slave的Sql进程检测到relay-log中新增加了内容后,会马上解析relay-log的内容成为在Master端真实执行时候的那些可执行的内容,并在自身执行。

简单来说就是:

        主:I/O进程
        从:I/O进程 从服务器通过I/O进程跟主服务器的I/O进程通信将主服务器的BINLOG日志同步过来,并且根据BINLOG日志的内容通过SQL进程往从库写数据。

2.主从复制的环境配置:

        环境:centos7u4

                master 10.0.0.131 ​

                 slave 10.0.0.130

        修改主机名称 ​ master和slave

        ​ 域名解析

 [root@master ~]# vim /etc/hosts ​
 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 
​ ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6 ​ 
     10.0.0.131 master 
    ​ 10.0.0.130 slave

        关闭selinux和防火墙

# setenforce 0

# systemctl stop firewalld

        确保时间一致

ntpdate ntp1.aliyun.com

        下载并安装启动Mysql5.7(所有机器都做)

        master配置

# vim /etc/my.cnf
[mysqld]

log-bin=/var/lib/mysql/master
server-id=1
gtid_mode=ON
enforce_gtid_consistency=1  

  授权远程账户

mysql> grant replication slave,super,reload on *.* to slave@'%' identified by '密码';

        slave配置

# vim /etc/my.cnf
[mysqld]

log-bin=/var/lib/mysql/slave
server-id=2
gtid_mode=ON
enforce_gtid_consistency=1

        重启master和slave上的mysql

修改完配置文件后一定要重启对应服务!

# systemctl restart mysqld

再次配置slave

        登录mysql

# mysql -u用户 -p密码
mysql > change master to master_host='master',master_user='slave',master_password='123',master_auto_position=1;
mysql > start slave;                //启动slave角色
mysql > show slave status\G         //查看状态

执行查看状态命令后返回如下

 其中 Slave_IO_Running: Yes
         Slave_SQL_Running: Yes  两项结果为yes则为成功

 测试实验结果:

在主服务器上写入数据,在从服务器上查看,如果能在从上看到数据,则成功!

 同步的数据只能是设置完主从复制之后插入的数据,之前的数据不会被同步

 创建库来进行实验

 可以看到左边主机master创建一个名为TXT的库,同时在右边从机slave中执行show databases;看到同时生成TXT库

主从复制完成

 

 

 

 

 

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值