一、 MySQL主从介绍
二、 准备工作
三、 配置主
四、 配置从
五、 测试主从同步
六、 扩展
一、 MySQL主从介绍
MySQL主从又叫做Replication、AB复制。简单讲就是A和B两台机器做主从后,在A上写数据,另外一台B也会跟着写数据,两者数据实时同步的。
MySQL主从是基于binlog的,主上须开启binlog才能进行主从。
binlog就是记录的MySQL的写入操作,主要就是创建,插入,修改,删除等等操作 ;binlog文件是一个二进制文件,无法直接cat查看。
主从过程大致有3个步骤
1)主将更改操作记录到binlog里
2)从将主的binlog事件(sql语句)同步到从本机上并记录在relaylog里,relaylog又称为中继日志
3)从根据relaylog里面的sql语句按顺序执行
主上有一个log dump线程,用来和从的I/O线程传递binlog
从上有两个线程,其中I/O线程用来同步主的binlog并生成relaylog,另外一个SQL线程用来把relaylog里面的sql语句落地.
主从复制原理图:
二、 准备工作
实现MySQL主从复制需要进行的配置:
需要准备两台虚拟机,分别都装上MySQL并且能正常运行 注意:克隆的虚拟机需要将网卡配置文件中的UUID删除掉,否则会有冲突。
此次实验的环境是两台CentOS7.3系统的虚拟机
主服务器:
是之前做LNMP实验时的系统,里面已经装好了MySQL,并且MySQL也有几个库了
主机名:Linux01
IP:192.168.239.128
MySQL版本:5.6.39
从服务器 :
克隆的主服务器,CentOS7.3系统
主机名:mysql-slave
IP:192.168.239.138
MySQL版本:5.6.39
三、 配置主
1. 编辑/etc/my.cnf配置文件
在/etc/my.cnf文件内容中【mysqld】下添加下面两行配置:
server-id=128(自定义,但要唯一,我们根据IP来设置)
log_bin=wenyang01(bin_log的前缀)
[root@Linux01 mysql]# pwd
/data/mysql
[root@Linux01 mysql]# vim /etc/my.cnf
2. 修改完配置文件后,启动或者重启mysqld服务
[root@Linux01 mysql]# /etc/init.d/mysqld restart
重启后查看 datadir 目录下的文件:
[root@Linux01 mysql]# ls -l /data/mysql
3. 创建测试库及数据,做实验用(主从参考对象)
[root@Linux01 mysql]# mysql -uroot -p12345 -e "create database mysql_test" //创建表
[root@Linux01 mysql]# mysql -uroot -p123456 //登录数据库
mysql> use mysql_test; //切换库
mysql> create table tb1(`id` int(4),`name` char(40)); //创建表
mysql> insert into tb1 values(1,'dong'); //表里插入数据
mysql> insert into tb1