MySQL主从复制原理及上机实践

一、主从复制的基本原理

  • Slave会从master读取binlog来进行数据同步。

  • master会将自身的改变记录到二进制日志(binary log)。这些记录过程称为二进制日志事件(binary log event)。

  • slave将master的binary log events拷贝到它的中继日志(relay log)。slave参照中继日志,将改变应用到自身。

  • MySQL的主从复制是异步且串行化的。

二、主从复制的基本原则

  • 每个slave只有一个master

  • 每个slave只能有一个唯一的服务器ID

  • 每个master可以有多个slave

三、主从复制存在的最大问题:延时

那么,延时是如何产生的呢? Ans:当主库写压力大,且超过从库一个sql线程的承受范围,延时就产生了!如何避免这个问题呢?这里不做过多讨论。

 

四、主从复制的配置问题

4.1 主库和从库要求安装的MySQL版本号最好要一致博文行文中使用MySQL版本号是5.7

4.2 主库和从库的配置项都配置 在[mysqld]结点下,都采用小写。

以下所述的配置项所处环境皆为Linux环境。

MySQL主库所在机器IP : 192.168.199.209

MySQL从库所在机器IP : 192.168.199.205


 

4.3 修改MySQL的配置文件,完成master-slave的必要配置项

4.3.1 主库配置

  1. 【必要】配置主库唯一服务ID。如 server-id = 1

  2. 【必要】启用二进制日志,并指定文件名。如log-bin=mysqlbin,还要加上 log-bin-index=mysqlbin.index

4.3.2 从库配置

  1. 【必要】配置从库唯一服务ID。如server-id=2

4.4 由于主库和从库都修改了my.conf 配置文件,故都要重启MySQL

  • service mysqld stop & service mysqld start

4.5 若使用到防火墙,需要关闭防火墙。

  • 关闭防火墙执行 service iptables stop

4.6 主库所在机器创建账户并授权slave

4.6.1  GRANT REPLICATION SLAVE ON *.* TO 'root'@'192.168.199.205' IDENTIFIED BY 'Root12/34’;

-- 192.168.199.205 标识从库所在机器IP。Root12/34 标识从库root账户的登录密码。

 

4.6.2  flush privileges

4.6.3  查询master状态 show master status;  同时记录下File列和Position列的值。

4.6.4  停止操作MySQL数据库,以防主库的状态值发生变化。

 

4.7 从库所在机器配置需要复制的主库机器

4.7.1  CHANGE MASTER TO MASTER_HOST='192.168.199.209',MASTER_USER='root',MASTER_PASSWORD='Root12/34’,

MASTER_LOG_FILE='mysqlbin.000001',MASTER_LOG_POS=604;

 

-- 192.168.199.209 标识主库所在机器的IP。 mysqlbin.000001 标识步骤4.6记录File列的值,604标识步骤4.6记录Position列的值。

 

4.7.2  启动从库复制功能 => start slave;

4.7.3  查看slave状态  show slave status; 若 Slave_IO_Running:Yes 和 Slave_SQL_Running:Yes。表明主从复制配置成功!

4.7.4  如何停止从库复制功能:stop slave;

 MySQL主从复制操作步骤到这儿告一段落!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值