原理:
MySQL主从配置又叫Replication、AB复制。简单讲就是A和B两台机器做主从后,在A上写数据,另外一台B也会跟着写数据,两者数据实时同步
MySQL主从是基于binlog的,主上必须开始binlog才能进行主从。
主要为3个步骤:
1)主讲更改操作记录到binlog里
2)从将主的binlog事件(sql语句)同步到从本机上并记录再relaylog(中继日志)里
3)从根据relaylog里面的sql语句按顺序执行
主上有一个log dump线程,用来和从的I/O线程传递binlog
从上有两个线程,其中I/O线程用来同步主的binlog并生成relaylog,另外一个SQL线程用来把relaylog里面的sql语句落地
环境信息:
[root@slave user]# uname -a
Linux slave 3.10.0-514.el7.x86_64 #1 SMP Tue Nov 22 16:42:41 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux
主机信息
hostname ip port
mysqlmaster 192.168.108.133 3307
slave 192.168.108.141 3308
安装mysql,version:5.7.24
cd /opt/;wget http://repo.mysql.com/mysql57-community-release-el7-8.noarch.rpm
cd /opt/;rpm -ivh mysql57-community-release-el7-8.noarch.rpm
yum update -y;yum -y install mysql-server
关闭selinux
sed -i 's/SELINUX=.*/SELINUX=disabled' /etc/selinux/config
setenforce 0
关闭防火墙
systemctl stop firewalld
systemctl disable firewalld
创建mysql目录[master和slave节点都需要创建,注意3307和3308的不同]
mkdir /home/usr/local/mysql-5.7.24/data/3307/
chown -R mysql:mysql /home/usr/local/mysql-5.7.24/data/
配置主从节点的信息:
master节点:
[root@mysqlmaster user]# vim /etc/my.cnf
[client]
port=3307
socket=/usr/local/mysql-5.7.24/data/3307/mysql.sock
default-character-set=utf8
[mysqld]
port=3307
socket=/usr/local/