MySQL高级-7-主从复制

本文最后更新于:2020年8月12日 上午

mysql Ver 14.14 Distrib 5.5.62

7.1 主从复制的基本原理

主从复制原理图

MySQL复制过程分成三步:

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

7.2 主从复制的基本原则

  1. 每个slave只能有一个master。
  2. 每个slave只能有一个唯一的服务器ID。
  3. 每个master可以有多个slave。

主从复制的最大问题是延时。

7.3 主从复制的常见配置

  1. MySQL版本最好一致且后台都以服务运行。

  2. 主从都配置在【mysqld】结点下,都是小写。

  3. 主机的配置文件修改项。

    【必须】主服务器唯一ID:

    server-id=1

    【必须】启用二进制文件:

    log-bin=自己本地的路径/mysqlbin

    【可选】启用错误日志:

    log-err=自己本地的路径/mysqlerr

    【可选】根目录:

    basedir=自己本地路径

    【可选】临时目录:

    tmpdir=自己本地路径

    【可选】数据目录:

    datadir=自己本地路径/Data/

    【必须】read-only:

    read-only=0

    【可选】设置不要复制的数据库:

    binlog-ignore-db=mysql

    【可选】设置需要复制的数据库:

    binlog-do-db=需要复制的主数据名字
  4. 从机的配置文件修改项。

    【必须】从服务器唯一ID:

    server-id=2

    【可选】启用二进制日志:

    log-bin=自己本地的路径/mysqlbin
  5. 因修改过配置文件,需要重启主机和从机的后台MySQL服务。

  6. 主机和从机都必须开放相应端口。

  7. 在主机上建立账号并授权slave。

    GRANT REPLICATION SLAVE ON *.* TO '用户名'@'IP地址' IDENTIFIED BY ‘密码’;
  8. 在主机上刷新权限。

    flush privileges;
  1. 在主机上查询master的状态。

    show master status;

    记录显示的File和Position的值。

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

    CHANGE MASTER TO MASTER_HOST=‘主机IP’,MASTER_USER='用户名',MASTER_PASSWORD='密码',MASTER_LOG_FILE='File名',MASTER_LOG_POS=Position数字;
  3. 启动从服务器复制功能。

    start slave
  4. 在从机上查询slave的状态。

    show slave status;
  5. 停止从服务器复制功能。

    stop slave;

版权声明:自由转载-非商用-非衍生-保持署名 Creative Commons BY-NC-ND 3.0 协议,转载请注明出处!

 目录