linux

如何在Linux上部署高可用的MySQL集群

小樊
49
2025-08-15 05:36:58
栏目: 云计算

在Linux上部署高可用的MySQL集群可以通过多种方式实现,以下是两种常见的方法:使用MySQL Group Replication和使用Galera Cluster。

方法一:使用MySQL Group Replication

MySQL Group Replication是MySQL 5.7及以上版本提供的一种基于组复制的高可用解决方案。以下是基本步骤:

  1. 准备环境

    • 至少三台服务器(用于实现高可用和数据冗余)。
    • 每台服务器上安装相同版本的MySQL。
  2. 配置MySQL

    • 在每台服务器上编辑my.cnfmy.ini文件,添加以下配置:

      [mysqld]
      server_id=1  # 每台服务器的唯一ID
      gtid_mode=ON
      enforce_gtid_consistency=ON
      master_info_repository=TABLE
      relay_log_info_repository=TABLE
      binlog_checksum=NONE
      log_slave_updates=ON
      transaction_write_set_extraction=XXHASH64
      loose-group_replication_bootstrap_group=OFF  # 仅在第一台服务器上设置为ON
      loose-group_replication_start_on_boot=OFF
      loose-group_replication_group_name="aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeeeee"  # 全局唯一的组名
      loose-group_replication_local_address="192.168.1.1:33061"  # 每台服务器的地址和端口
      loose-group_replication_group_seeds="192.168.1.1:33061,192.168.1.2:33061,192.168.1.3:33061"  # 所有服务器的地址和端口
      loose-group_replication_single_primary_mode=ON  # 单主模式
      loose-group_replication_enforce_update_everywhere_checks=ON
      
    • 在第一台服务器上,将loose-group_replication_bootstrap_group设置为ON,然后重启MySQL服务:

      systemctl restart mysql
      
    • 在其他服务器上,将loose-group_replication_bootstrap_group设置为OFF,然后重启MySQL服务:

      systemctl restart mysql
      
  3. 验证集群状态

    • 登录到任意一台服务器,使用以下命令检查集群状态:

      SELECT * FROM performance_schema.replication_group_members;
      

方法二:使用Galera Cluster

Galera Cluster是一个开源的高可用性和高性能的MySQL集群解决方案。以下是基本步骤:

  1. 准备环境

    • 至少三台服务器(用于实现高可用和数据冗余)。
    • 每台服务器上安装相同版本的MySQL。
  2. 配置MySQL

    • 在每台服务器上编辑my.cnfmy.ini文件,添加以下配置:

      [mysqld]
      wsrep_provider=/usr/lib/galera/libgalera_smm.so
      wsrep_cluster_address=gcomm://192.168.1.1,192.168.1.2,192.168.1.3
      wsrep_cluster_name="GaleraCluster"
      wsrep_node_address=192.168.1.1
      wsrep_node_name="Node1"
      wsrep_sst_method=xtrabackup-v2
      wsrep_sst_auth=user:password
      wsrep_sst_receive_address=192.168.1.1
      wsrep_sst_port=4567
      wsrep_provider_options="pc.bootstrap=1 pc.ignore_sb=1"
      
    • 在第一台服务器上,将pc.bootstrap设置为1,然后重启MySQL服务:

      systemctl restart mysql
      
    • 在其他服务器上,将pc.bootstrap设置为0,然后重启MySQL服务:

      systemctl restart mysql
      
  3. 验证集群状态

    • 登录到任意一台服务器,使用以下命令检查集群状态:

      SHOW STATUS LIKE 'wsrep%';
      

注意事项

通过以上步骤,你可以在Linux上部署一个高可用的MySQL集群。根据具体需求选择合适的方案,并进行相应的配置和优化。

0
看了该问题的人还看了