MySQL-主从复制

前言

本文主要纪录了MySQL主从复制原理、基本原则和一主一从主从配置的流程。

基本原理

MySQL数据同步

slave会从master读取binlog来进行数据同步,因为需要读取文件所以有延迟。
主从复制

MySQL复制过程

  1. master将改变记录到二进制日志(binary log)。这些记录过程叫做二进制日志事件,binary log events;
  2. slave将master的binary log events拷贝到它的中继日志(relay log);
  3. slave执行中继日志中的事件,将改变应用到自己的数据库中。 MySQL复制是异步的且串行化的

基本原则

  • 每个slave只有一个master。
  • 每个slave只能有一个唯一的服务器ID。
  • 每个master可以有多个salve
  • 复制的最大问题:延时

一主一从常见配置

mysql版本一致且后台以服务运行。主从均配置在[mysqld]结点下,都是小写。这里主机用的win10系统。

主机修改配置文件

在[mysqld]下配置。

[mysqld]
# 主从复制
# 主服务器唯一ID
server-id=1

# 启用二进制日志:log-bin=自己本地的路径/data/mysqlbin
log-bin=D:\Development\MySQL\logs\mysqlbin

# 设置不要复制的数据库
binlog-ignore-db=mysql

# 设置需要复制的数据库
binlog-do-db=my_master_slave

从机修改配置文件

[mysqld]
# 从服务器唯一ID
server-id = 2
relay-log=mysql-relay

启动主从数据库服务

# 启动mysql
systemctl restart mysqld

# 查看mysql状态
systemctl status mysqld

关闭防火墙

systemctl stop firewalld

在主机上建立帐户并授权slave

  • 创建用户并授权
    mysql> GRANT REPLICATION SLAVE ON *.* TO 'slave'@'%' IDENTIFIED BY '123456';
    
  • 查询master的状态。
    记录下File和Position的值(会用到),执行完此步骤后不要再操作主服务器MYSQL,防止主服务器状态值变化。
    show master status;
    

在从机上配置需要复制的主机

  • 配置需要复制的主机

    # CHANGE MASTER TO MASTER_HOST='主机IP',MASTER_USER='slave',MASTER_PASSWORD='123456',MASTER_LOG_FILE='File名字',MASTER_LOG_POS=Position数字;
    CHANGE MASTER TO MASTER_HOST='192.168.1.103',MASTER_USER='slave',MASTER_PASSWORD='123456',MASTER_LOG_FILE='mysqlbin.000003',MASTER_LOG_POS=1616;
    
    # 启动从服务器复制功能
    start slave;
    
    # 停止从服务复制功能
    stop slave;
    
  • 查看主从配置是否成功

    show slave status;
    

    出现以下两点即成功。image.png

如何重新配置主从

在从库中执行以下语句,重新开始第6步即可。

stop slave;
reset master;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值