MySQL一主多从复制(基于GTID)

举报
CodeStack 发表于 2021/01/05 20:34:37 2021/01/05
【摘要】 宿主机环境下,运行多个MySQL,实现数据的主从复制

环境准备

  • 确保MySQL版本大于5.7
  • 确保防火漆关闭或开启各服务器的3306端口

MySQL配置

  • 查看是否开启了GTID模式

image-20201110163302003

  • 若未开启在my.cnf文件最后添加,开启GTID(主)

    # must params
    server_id =  100
    enforce_gtid_consistency       = on
    gtid_mode                      = on
    
    # binlog
    log_bin = mysqlbin
    log_slave_updates = 1
    binlog_format = row
    
    # relay log
    skip_slave_start = 1

  • 若未开启在my.cnf文件最后添加,开启GTID(从)

    需要注意的是,若配置多台MySQL从服务器,确保server_id唯一

    # must params
    server_id =  101
    enforce_gtid_consistency       = on
    gtid_mode                      = on
    
    # binlog
    log_bin = mysqlbin
    binlog_format = row
    master_info_repository = TABLE
    
    # relay log
    relay_log_info_repository = TABLE

  • 重启数据库

    systemctl restart mysqld

  • 再次确认一下是否开启成功

    gtid_mode 被设置为on,即为开启成功

    image-20201110165848669

  • 备份数据库

    若使用的是三个数据库,数据不一样,需要进行数据的备份,导入

    # 备份
    mysqldump --single-transaction --master-data=2 --triggers --routines --all-databases -uroot -p > all.sql
    # 导出
    mysqldump -u username -p dbname > dbname.sql
    # 导入
    mysqldump -u username -p dbname < dbname.sql

配置账号

  • 主库创建账号

    创建用于复制的账号

    mysql> create user repl@'192.168.43.%' identified by '123456Gao!';
    Query OK, 0 rows affected (0.01 sec)
    
    mysql> grant replication slave on *.* to repl@'192.168.43.%';
    Query OK, 0 rows affected (0.06 sec)

  • 从库进行连接

    进行数据库连接

    mysql> change master to master_host = '192.168.43.54',
        -> master_user = 'repl',
        -> master_password = '123456Gao!',
        -> master_auto_position = 1
        -> ;
    Query OK, 0 rows affected, 2 warnings (0.07 sec)

  • 配置前

    image-20201110172707416

  • 配置后

    image-20201110172725502

  • 开启从库复制链路

    start slave;

查看状态

  • show slave status\G

    确保下图红框的两个内容状态为yes,

  • 测试

    在主库创建数据库,然后从库参看是否正确同步的该数据库

    # 主库创建
    create table test_gtid;
    # 从库查看
    show databases;

可能遇到的问题

推荐

华为开发者空间发布

让每位开发者拥有一台云主机

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。