温馨提示×

centos mysql如何配置集群

小樊
51
2025-09-11 16:02:38
栏目: 云计算

在CentOS上配置MySQL集群,通常可以使用MySQL的复制功能或者更高级的集群解决方案如MySQL Group Replication、Galera Cluster等。以下是使用MySQL Group Replication来配置一个基本的MySQL高可用集群的步骤:

前提条件

  1. 操作系统:CentOS 7或8。
  2. MySQL版本:MySQL 5.7或更高版本。
  3. 至少三台服务器:用于部署主节点和两个从节点,以实现高可用性。

步骤

1. 安装MySQL

在所有服务器上安装MySQL:

sudo yum install -y mysql-server

2. 配置MySQL

编辑MySQL配置文件 /etc/my.cnf/etc/mysql/my.cnf,添加以下配置:

主节点配置(假设为主节点1):

[mysqld]
server-id=1
log_bin=mysql-bin
binlog_format=row
gtid_mode=ON
enforce_gtid_consistency=ON
master_info_repository=TABLE
relay_log_info_repository=TABLE
transaction_write_set_extraction=XXHASH64
loose-group_replication_group_name="aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeeeee"
loose-group_replication_start_on_boot=off
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_bootstrap_group=off

从节点配置(假设为从节点2和3):

[mysqld]
server-id=2  # 对于第二个节点,改为2,第三个节点改为3
log_bin=mysql-bin
binlog_format=row
gtid_mode=ON
enforce_gtid_consistency=ON
master_info_repository=TABLE
relay_log_info_repository=TABLE
transaction_write_set_extraction=XXHASH64
loose-group_replication_group_name="aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeeeee"
loose-group_replication_start_on_boot=off
loose-group_replication_local_address="192.168.1.2:33062"  # 对于第二个节点
loose-group_replication_local_address="192.168.1.3:33063"  # 对于第三个节点
loose-group_replication_group_seeds="192.168.1.1:33061,192.168.1.2:33062,192.168.1.3:33063"
loose-group_replication_bootstrap_group=off

3. 启动MySQL服务

在所有服务器上启动MySQL服务:

sudo systemctl start mysqld
sudo systemctl enable mysqld

4. 初始化集群

在主节点上执行以下命令来初始化集群:

mysql> SET GLOBAL group_replication_bootstrap_group=ON;
mysql> START GROUP_REPLICATION;
mysql> SET GLOBAL group_replication_bootstrap_group=OFF;

5. 配置从节点

在每个从节点上执行以下命令来加入集群:

mysql> STOP GROUP_REPLICATION;
mysql> RESET MASTER ALL;
mysql> CHANGE MASTER TO MASTER_HOST='主节点IP', MASTER_USER='replicator', MASTER_PASSWORD='password', MASTER_AUTO_POSITION=1;
mysql> START GROUP_REPLICATION;

6. 验证集群状态

在任意一个节点上执行以下命令来验证集群状态:

mysql> SELECT * FROM performance_schema.replication_group_members;

注意事项

  • 确保所有服务器的时间同步。
  • 确保防火墙允许MySQL端口(默认3306)的通信。
  • 根据实际需求调整配置参数。

通过以上步骤,你可以在CentOS上配置一个基本的MySQL Group Replication集群。根据具体需求,可能还需要进一步优化和调整配置。

0