MySQL 主从复制

文章目录 (?) [+]

    master node

    1.主要配置

    [mysqld]
    server-id=1
    log-bin=mysql-bin
    binlog_format=mixed
    expire_logs_days=14

    2.创建授权账户

    GRANT REPLICATION SLAVE ON *.* TO 'slave'@'%' IDENTIFIED BY '123456';
    FLUSH PRIVILEGES;

    3.记录 File 和 Position

    SHOW MASTER STATUS\G;

    4.由于是根据主库的 binlog 进行同步的,如果待同步的数据库已有大量数据,而此时的 binlog 并不能完全追踪出整个数据的演变过程,故需要从主库导入一份副本到从库,且在同步开始前双方数据应保持一致。

    # 导出所有数据
    mysqldump -uroot --all-databases --default-character-set=utf8mb4 > all.bak.sql
    # 只导出指定数据库
    mysqldump -uroot --databases blog test --default-character-set=utf8mb4 > bak.sql


    slave node

    1.主要配置

    [mysqld]
    server-id=2
    log-bin=mysql-bin
    binlog_format=mixed
    expire_logs_days=14
    relay_log=mysql-relay-bin
    # 只同步 blog 数据库
    replicate-do-db=blog
    # 忽略所有错误
    #slave_skip_errors=all

    2.重置原有的从机同步

    STOP SLAVE;
    RESET MASTER;
    RESET SLAVE;

    3.导入主库的数据

    source /data/bak.sql;

    4.设置同步

    CHANGE MASTER TO MASTER_HOST = '10.0.0.2',
        MASTER_PORT = 3306,
        MASTER_USER = 'slave',
        MASTER_PASSWORD = '123456',
        MASTER_LOG_FILE ='mysql-bin.000051',
        MASTER_LOG_POS = 652;
    
    # 启动从机复制
    START SLAVE;
    
    # 查看从机 Slave_IO_Running 和 Slave_SQL_Running 状态
    SHOW SLAVE STATUS\G;


    相关链接:

    docker  mariadb:https://github.com/lanseyujie/docker-lnmp/tree/master/mariadb

    mysql 常用配置说明:https://lanseyujie.com/post/mysql-common-configuration-instructions.html


    本文标题:MySQL 主从复制
    本文链接:https://lanseyujie.com/post/mysql-master-slave-replication.html
    版权声明:本文使用「署名 4.0 国际」创作共享协议,转载或使用请遵守署名协议。
    点赞 0 分享 0
    上一篇:ssh 端口转发
    下一篇:MySQL 双主同步