第5章 主从复制

第5章 主从复制

1、复制的基本原理

slave会从master读取binlog来进行数据同步,主从复制的三步骤

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

2、复制的基本原则

  • 每个slave只有一个master
  • 每个slave只能有一个唯一的服务器ID
  • 每个master可以有多个salve

3、复制最大问题

因为发生多次 IO, 存在延时问题

4、一主一从常见配置

前提:mysql 版本一致,主从机在同一网段下

  • ping 测试
  • Linux 中 ping Windows,Windows 中 ping Linux

主机修改 my.ini 配置文件(Windows)

  • 主从都配置都在 [mysqld] 节点下,都是小写,以下是老师的配置文件

在这里插入图片描述

  • 以下两条为必须配置

    • 配置主机 id server-id=1
    • 启用二进制日志
      log-bin=C:/Program Files (x86)/MySQL/MySQL Server 5.5/log-bin/mysqlbin
  • 以下为非必须配置

    • 启动错误日志
      log-err=C:/Program Files (x86)/MySQL/MySQL Server 5.5/log-bin/mysqlerr

    • 根目录
      basedir=“C:/Program Files (x86)/MySQL/MySQL Server 5.5/”

    • 临时目录
      tmpdir=“C:/Program Files (x86)/MySQL/MySQL Server 5.5/”

    • 数据目录
      datadir=“C:/Program Files (x86)/MySQL/MySQL Server 5.5/Data/”

    • 主机,读写都可以
      read-only=0

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

  • 设置需要复制的数据
    binlog-do-db=需要复制的主数据库名字

从机修改 my.cnf 配置文件(Linux)

  • 【必须】从服务器唯一ID
    server-id=2

  • 【可选】启用二进制文件

修改配置文件后的准备工作

  • 主机从机都关闭防火墙

    - Windows 手动关闭防火墙,关闭虚拟机 linux 防火墙(service iptables stop)

在 Windows 主机上建立账户并授权 slave

  • 创建用户, 并授权
  1,GRANT REPLICATION SLAVE ON *.* TO '备份账号'@'从机数据库 IP' IDENTIFIED BY   '账号密码'
  2,GRANT REPLICATION SLAVE ON *.* TO 'Heygo'@'192.168.152.129' IDENTIFIED BY '123456';
  • 刷新权限信息
    mysql> flush privileges;
  • 查询 master 的状态,将 File 和 Position 记录下来,在启动 Slave 时需要用到这两个参数
   show master status;

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

从机进行认证

CHANGE MASTER TO MASTER_HOST='主机 IP',
MASTER_USER='创建用户名',
MASTER_PASSWORD='创建的密码',
MASTER_LOG_FILE='File 名字',
MASTER_LOG_POS=Position数字;
CHANGE MASTER TO MASTER_HOST='10.206.207.131',
MASTER_USER='Heygo',
MASTER_PASSWORD='123456',
MASTER_LOG_FILE='mysql-bin.000001',
MASTER_LOG_POS=107;

启动从服务器复制功能

  • start slave;

查看从机复制功能是否启动成功:Slave_SQL_Running:Yes 和 Slave_IO_Running:Yes说明从机连接主机成功

  • show slave status\G;
    在这里插入图片描述
    这两个必须同时为yes

如何停止从服务复制功能

  • stop slave;

版权声明:本文为asertgh123原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。