mysql5.7 双主模式配置

双主模式是指两台服务器互为主从,任何一台服务器数据变更,都会通过复制应用到另外一方的数据库中。
在这里插入图片描述
随着业务发展,架构会从主从模式演变为双主模式,建议用双主单写,再引入高可用组件,例如 Keepalived和MMM等工具,实现主库故障自动切换。

前提配置:两台mysql服务器作为master_1 和 master_2

一、master_1配置

  1. 修改配置文件

    vi /etc/my.cnf
    

    在主从配置的基础上追加配置

    #主从配置
    log_bin=mysql-bin
    server-id=1
    sync-binlog=1
    binlog-ignore-db=performance_schema
    binlog-ignore-db=information_schema
    binlog-ignore-db=sys
    
    #追加双主配置
    relay_log=mysql-relay-bin
    log_slave_updates=1
    
    auto_increment_offset=1
    auto_increment_increment=2
    

    在这里插入图片描述
    配置完后重启mysql

    service mysql restart
    
  2. 登入

    mysql -uroot -p
    
  3. 授权(授权过则跳过授权这一步)

    mysql> grant replication slave on *.* to 'root'@'%' identified by 'root';
    mysql> grant all privileges on *.* to 'root'@'%' identified by 'root';
    mysql> flush privileges;
    
  4. 查看状态

    mysql> show master status;
    

    在这里插入图片描述
    上图master_1的File和Position这两个参数在mater_2上要用到,用于建立关系

二、master_2配置

  1. 修改配置文件
    vi /etc/my.cnf
    
    配置如下:
    log-bin=mysql-bin
    server-id=3
    sync-binlog=1
    binlog-ignore-db=information_schema
    binlog-ignore-db=performance_schema
    binlog-ignore-db=sys
    
    relay_log=mysql-relay-bin
    log_slave_updates=1
    auto_increment_offset=2
    auto_increment_increment=2
    
    在这里插入图片描述
    配置完后重启mysql
    service mysql restart
    
  2. 登入
    mysql -uroot -p
    
  3. 授权
    mysql> grant replication slave on *.* to 'root'@'%' identified by 'root';
    mysql> grant all privileges on *.* to 'root'@'%' identified by 'root';
    mysql> flush privileges;
    
  4. 查看状态
    mysql> show master status;
    
    在这里插入图片描述
    上图master_2的File和Position这两个参数在mater_1上要用到,用于建立关系

三、配置双主关系

  1. master_1建立和master_2的关系

    mysql> change master to master_host='192.168.200.131',master_port=3306,master_user='root',master_password='123456',master_log_file='mysql-bin.000003',master_log_pos=154;
    

    master_host:master_2的host
    master_port:master_2的port
    master_user:master_2的用户名
    master_password:master_2的密码
    master_log_file:master_2的log_file,即之前查询出的master_2的File
    master_log_pos:master_2的log_pos,即之前查询出的master_2的Position

  2. master_1启动slave,并查看状态

    mysql> start slave;
    mysql> show slave status \G;
    

    在这里插入图片描述
    注意没报错并且Slave_IO_Running和Slave_SQL_Running都为YES,则配置成功。

  3. master_2建立和master_1的关系

    mysql> change master to master_host='192.168.200.128',master_port=3306,master_user='root',master_password='123456',master_log_file=='mysql-bin.000002',master_log_pos=154;
    

    master_host:master_1的host
    master_port:master_1的port
    master_user:master_1的用户名
    master_password:master_1的密码
    master_log_file:master_1的log_file,即之前查询出的master_1的File
    master_log_pos:master_1的log_pos,即之前查询出的master_1的Position

  4. master_2启动slave,并查看状态

    mysql> start slave;
    mysql> show slave status \G;
    

    在这里插入图片描述
    注意没报错并且Slave_IO_Running和Slave_SQL_Running都为YES,则配置成功。

四、测试

  1. master_1新建库和表
    在这里插入图片描述

  2. master_2查看
    在这里插入图片描述
    说明master1到master2同步成功

  3. 接着mater_1和mater_2都插入一条数据,然后查看数据同步状态
    首先在master1上插入一条数据
    在这里插入图片描述
    接着在master2上也插入条数据
    在这里插入图片描述

    最后查看master1的数据
    在这里插入图片描述
    可见master_1和master_2都完成了同步

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
MySQL 5.7引入了GTID(Global Transaction Identifier)特性,这对于高可用性和故障恢复非常重要。GTID提供了一种跟踪跨多个数据库实例的事务的方式,使得主从复制更为可靠。下面是安装和配置MySQL 5.7 GTID主从的一般步骤: 1. **安装MySQL 5.7**: - 下载MySQL 5.7的二进制包,可以从MySQL官网下载适用于你操作系统的版本。 - 按照官方文档的指示进行安装,确保在安装过程中选择“GTID”作为复制模式。 2. **初始化主服务器**: - 配置my.cnf文件,开启GTID相关选项,例如设置`gtid_mode=ON` 和 `enforce_gtid_consistency=ON`。 - 启动MySQL服务并创建一个包含GTID的初始数据库实例。 3. **启用二进制日志**: - 在my.cnf中配置`log_bin`和`expire_logs_days`以管理二进制日志,这对主从复制至关重要。 4. **配置主从复制**: - 创建复制用户并分配合适的权限,如`REPLICATION SLAVE`。 - 在主服务器上执行`CHANGE MASTER TO`命令来指定从服务器的信息,包括GTID的位置(例如,`MASTER_GTID_FILE`和`MASTER_BINLOG_POS`)。 5. **启动从服务器**: - 使用相同的GTID配置启动从服务器。 - 运行`START SLAVE`命令,让从服务器开始同步数据。 6. **监控和调试**: - 定期检查`SHOW MASTER STATUS`和`SHOW SLAVE STATUS\G`来确保复制状态正常。 - 如果遇到问题,查看错误日志和使用`mysqlbinlog`工具分析事务历史。 **相关问题--:** 1. GTID是什么,它如何提高复制的可靠性? 2. 在配置主从复制时,如何正确设置`CHANGE MASTER TO`命令? 3. 有哪些常见的GTID复制问题及解决方法?

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值