一、介绍及准备工作
1.介绍
MySQL主从配置又叫Replication或者AB复制,简单讲就是A和B两台机器做主从后,在A上写数据,另一台B也会跟着写数据,两台数据实时同步。
MySQL主从是基于binlog的,主上须开启binlog才能进行主从。
主从过程大致有3个步骤
主将更改操作记录到Binlog里
从将主的Binlog事件(sql语句)同步到从本机上并记录在relaylog里
从根据relaylog里面的sql语句按顺序执行
主上有一个logdump线程,用来和从的i/o线程传递binlog
从上有两个线程,其中i/o线程用来同步主的binlog并生成relaylog,另外一个SQL线程用来把relaylog里面的sql语句执行一遍。
适用场景:
(1)做数据库数据备份,仅仅是备份,当主机宕机时,马上从机可以代替主机。
(2)还是做数据备份,但是和主机一样,会向web服务器提供服务。但是不能往从机上写数据。
主从延迟:「步骤2」开始,到「步骤7」执行结束。
步骤 2:存储引擎处理,时间极短
步骤 3:文件更新通知,磁盘读取延迟
步骤 4:Bin Log 文件更新的传输延迟,单线程
步骤 5:磁盘写入延迟
步骤 6:文件更新通知,磁盘读取延迟
步骤 7:SQL 执行时长
Master上 1 个IO线程,负责向Slave传输 binary log(binlog)
Slave上 2 个线程:IO 线程和执行SQL的线程,其中:
IO线程:将获取的日志信息,追加到relay log上;
执行SQL的线程:检测到relay log中内容有更新,则在Slave上执行sql;
2.准备工作
准备两台机器,上面都要安装MySQL。
MySQL的安装这里就不说了,前面日志会有。
这里经常会出现一个权限问题。因为/data/mysql下的文件所有者和所属组都变成了root。用chmod改成MySQL即可。
二、配置MySQL的主机
1.安装MySQL
2.修改/etc/my.cnf文件,添加以下2段
server-id=100
log_bin=litongyao1 (生成binlog,litongyao1是他的文件开头)
重新启动mysql
[root@zhuji ~]# /etc/init.d/mysqld restart
接下来我们查看/data/mysql下,