在CentOS上配置MySQL集群,通常可以使用MySQL的复制功能或者更高级的集群解决方案如MySQL Group Replication、Galera Cluster等。以下是使用MySQL Group Replication来配置一个基本的MySQL高可用集群的步骤:
在所有服务器上安装MySQL:
sudo yum install -y mysql-server
编辑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
在所有服务器上启动MySQL服务:
sudo systemctl start mysqld
sudo systemctl enable mysqld
在主节点上执行以下命令来初始化集群:
mysql> SET GLOBAL group_replication_bootstrap_group=ON;
mysql> START GROUP_REPLICATION;
mysql> SET GLOBAL group_replication_bootstrap_group=OFF;
在每个从节点上执行以下命令来加入集群:
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;
在任意一个节点上执行以下命令来验证集群状态:
mysql> SELECT * FROM performance_schema.replication_group_members;
通过以上步骤,你可以在CentOS上配置一个基本的MySQL Group Replication集群。根据具体需求,可能还需要进一步优化和调整配置。