mysql主从配置实战异步复制-半同步复制-GTID复制

主从复制配置实战

  1. /etc/mysql/my.cnf 主库
    log-bin=/var/lib/mysql/mysql-bin
    server-id=123454

  2. /etc/mysql/my.cnf 从库
    log-bin=/var/lib/mysql/mysql-bin
    server-id=111111

  3. 主库全局上锁
    flush tables with read lock;

  4. 查看主库binlog状态
    show master status\G

  5. 备份主库
    mysqldump -h xxxx -P 33306 -u root --all-databases --master-data > dbdump.sql -p

  6. 将备份文件复制到从库
    cp ../mysql8/dbdump.sql .

  7. 释放主库锁
    unlock tables;

  8. 进入从库msyql客户端,导入备份文件
    source dbdump.sql;

  9. 查看从库状态
    show slave status\G

  10. 修改从库对应的主库
    change master to master_host="xxxx", master_user="root", master_log_file="mysql-bin.000001", master_log_pos=156;

  11. 开启从库
    start slave;

  12. 停止从库、重置从库
    stop slave;
    reset slave;

  13. 重新配置从库对应的主库,需要输入端口号和密码
    change master to master_host="4xxxxxxx", master_port=xxxx, master_user="root", master_password='xxxx', master_log_file="mysql-bin.000001", master_log_pos=156;

  14. 向主库插入一条数据,从库也跟着有了
    主库和从库的状态是一致的
    show master status;
    show slave status;

默认主从采用的异步复制

  1. 如何使用半同步复制,主要在主和从配置文件中加入三行
    plugin-load = "rpl_semi_sync_master=semisync_master.so;rpl_semi_sync_slave=semisync_slave.so"
    rpl-semi-sync-master-enabled = 1
    rpl-semi-sync-slave-enabled = 1

  2. 查看主从脱库时间(只有半同步复制才有这个时间,异步复制没有的)
    show variables like "rpl_semi_sync_master_timeout";

  3. 查看正在做的线程
    show processlist\G

到此主从复制完成了。

GTID复制

  1. 主库和从库配置中都打开GTID配置
    gtid_mode=on
    enforce_gtid_consistency=on

  2. 重启主库和从库
    sudo docker-compose restart

  3. 停止从库
    stop slave;

  4. 使用GTID进行主从复制
    change master to master_host="xxxx", master_port=33306, master_user="xxxx", master_password='xxxx', master_auto_position=1;

  5. 开启从库
    start slave;

GTID主从复制完成,向主库中插入一条数据试试吧。

posted @   专职  阅读(215)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)
点击右上角即可分享
微信分享提示