开发者

Linux中MySQL 双主复制的配置指南

目录
  • 前言
  • 配置基于GTID的复制模式
  • 第一台主服务器配置
    • 主服务器配置
    • 创建具有复制权限的用户
    • 启动从服务
  • 第二台主服务器配置
    • 主服务器配置
    • 创建具有复制权限的用户
    • 启动从服务
  • 测试双主复制配置
    • 第一台主服务器测试
    • 第二台主服务器测试
  • 总结

    前言

    在数据驱动的时代,数据库的高可用性和数据一致性是每个企业必须考虑的重要问题。mysql 双主复制(Master-Master Replication)php提供了一种有效的解决方案,通过配置两台服务器互为主从,保证数据的实时同步和高可用性。本文将详细介绍如何配置基于 GTID 的 MySQL 双主复制,并进行测试验证。

    配置基于GTID的复制模式

    GTID(全局事务标识符)是 MySQL 提供的一种新型复制方式,它简化了主从复制的配置和管理,确保数据的一致性和完整性。在配置 MySQL 双主复制之前,我们需要确保两台主服务器都启用了 GTID 模式。

    第一台主服务器配置

    主服务器配置

    首先,我们需要修改第一台主服务器的配置文件 /etc编程/my.cnf,添加以下内容:

    server-id = 100
    log_bin = mysql-bin
    gtid_mode = ON
    enforce_gtid_consistency = true

    这些配置项的作用如下:

    • server-id:设置服务器的唯一标识符。
    • log_bin:启用二进制日志记录。
    • gtid_mode:启用 GTID 模式。
    • enforce_gtid_consistency:强制 GTID 一致性。

    修改完配置文件后,重启 MySQL 服务使配置生效:

    systemctl restart mysqld
    

    创建具有复制权限的用户

    接下来,我们需要创建一个具有复制权限的用户,用于两台服务器之间的同步:

    grant replication slave on *.* to 'repluser'@'192.168.192.%' identified by 'Abc-1234';
    flush privileges;
    show master status\G;

    这些 SQL 命令的作用如下:

    • grant replication slave:授予用户复制权限。
    • flush privileges:刷新权限,使之生效。
    • show masterhttp://www.devze.com status:查看主服务器的状态。

    启动从服务

    在创建好用户之后,进入 MySQL 数据库执行以下命令,将另一台主服务器配置为从服务器:

    mysql -uroot -pABCabc-123
    
    change master to
    master_host="192.168.192.111",
    master_user="repluser",
    master_password="Abc-1234",
    master_auto_position=1;

    启动从服务:

    start slave;
    

    第二台主服务器配置

    主服务器配置

    在第二台主服务器上,同样需要修改配置文件 /etc/my.cnf,添加以下内容:

    server-id = 101
    log_bin = mysql-bin
    gtid_mode = ON
    enforce_gtid_consistency = true

    重启 MySQL 服务:

    systemctl restart mysqld
    

    创建具有复制权限的用户

    创建具有复制权限的用户:

    grant replication slave on *.* to 'repluser'@'192.168.192.%' identified by 'Abc-1234';
    flush privileges;
    show master status\G;

    启动从服务

    进入 MySQL 数据库执行以下命令,将第一台主服务器配置为从服务器:

    mysql -uroot -pABCabc-123
    
    change master to
    master_host="192.168.192.100",
    master_user="repluser",
    master_password="Abc-1234",
    master_auto_position=1;

    启动从服务:

    start slave;
    

    Linux中MySQL 双主复制的配置指南

    Linux中MySQL 双主复制的配置指南

    测试双主复制配置

    第一台主服务器测试

    在第一台主服务器上,向 hello 数据库的 test 表插入数据,并查看数据同步情况:

    mysql> insert into hello.test values(2222);
    Query OK, 1 row affected (0.01 sec)
     
    mysql> select * from hello.test;
    +--------+
    | num    |
    +--------+
    | 111111 |
    |   2222 |
    +--------+
    2 rows in set (0.00 sec)
     
    mysql> select * from hello.test;
    +---------+
    | num     |
    +---------+
    |  111111 |
    |    2222 |
    | 3333333 |
    +---------+
    3 rows in set (0.01 sec)

    第二台主服务器测试

    在第二台主服务器上,查看刚刚插入的数据,并插入新的数据:

    mysql> select * from hello.test;
    +--------+
    | num    |
    +--------+
    | 111111 |
    |   2222 |
    +--------+
    2 rows in set (0.00 sec)
     
    mysql> insert into hello.test values(3333333);
    QufIhwhery OK, 1 row affected (0.02 sec)
     
    mysql> select * from hello.test;
    +---------+
    | num     |
    +---------+
    |  111111 |
    |    2222 |
    | 3333333 |
    +---------+
    3 rows in set (0.00 编程客栈sec)

    总结

    通过以上配置和测试,我们成功地实现了 MySQL 双主复制。此配置不仅提高了数据库的可用性,还确保了数据的一致性。在实际生产环境中,这种配置可以极大地减少数据丢失的风险,提升系统的容灾能力。希望本文对您在 MySQL 双主复制的配置上有所帮助。如果有任何问题或建议,欢迎留言讨论。

    以上就是linux中MySQL 双主复制的配置指南的详细内容,更多关于Linux MySQL双主复制的资料请关注编程客栈(www.devze.com)其它相关文章!

    0

    上一篇:

    下一篇:

    精彩评论

    暂无评论...
    验证码 换一张
    取 消

    最新数据库

    数据库排行榜