美文网首页数据库
MySQL主从复制

MySQL主从复制

作者: 月弦 | 来源:发表于2020-07-06 13:25 被阅读0次

    基本原理

    • 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系统。

    1. 主机修改配置文件

    在[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
    

    2. 从机修改配置文件

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

    3. 启动主从数据库服务

    # 启动mysql
    systemctl restart mysqld
    # 查看mysql状态
    systemctl restart mysqld
    

    4. 关闭防火墙

    systemctl stop firewalld
    

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

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

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

    • 配置需要复制的主机
    # 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

    7. 如何重新配置主从

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

    stop slave;
    reset master;
    

    相关文章

      网友评论

        本文标题:MySQL主从复制

        本文链接:https://www.haomeiwen.com/subject/pquwqktx.html