在CentOS上部署MySQL集群可以通过多种方式实现,其中最常见的是使用MySQL Group Replication。以下是一个基本的步骤指南,帮助你在CentOS上部署一个MySQL集群。
在所有服务器上安装MySQL。
sudo yum install -y mysql-server
启动并启用MySQL服务:
sudo systemctl start mysqld
sudo systemctl enable mysqld
编辑MySQL配置文件 /etc/my.cnf
或 /etc/mysql/my.cnf
,添加以下内容:
[mysqld]
server-id=1 # 每个服务器的唯一ID
gtid_mode=ON
enforce_gtid_consistency=ON
binlog_checksum=CRC32
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_ssl_mode=REQUIRED
loose-group_replication_recovery_use_ssl=1
loose-group_replication_local_address="192.168.1.1:33061" # 服务器IP和端口
loose-group_replication_group_seeds="192.168.1.1:33061,192.168.1.2:33061,192.168.1.3:33061" # 其他服务器的IP和端口
loose-group_replication_single_primary_mode=ON # 单主模式
根据服务器的IP地址和端口修改 server-id
、loose-group_replication_local_address
和 loose-group_replication_group_seeds
。
在第一个服务器上启动MySQL并初始化集群。
sudo systemctl start mysqld
登录到MySQL并设置初始密码:
mysql -u root -p
在MySQL shell中执行:
CREATE USER 'repl'@'%' IDENTIFIED BY 'password';
GRANT REPLICATION SLAVE ON *.* TO 'repl'@'%';
FLUSH PRIVILEGES;
然后配置复制:
SET GLOBAL group_replication_bootstrap_group=ON;
退出MySQL shell:
EXIT;
将 group_replication_bootstrap_group
设置回 OFF
:
SET GLOBAL group_replication_bootstrap_group=OFF;
在其他服务器上启动MySQL并加入集群。
sudo systemctl start mysqld
登录到MySQL并配置复制:
mysql -u root -p
在MySQL shell中执行:
SET GLOBAL group_replication_group_name="aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeeeee";
SET GLOBAL group_replication_local_address="192.168.1.2:33061"; # 当前服务器的IP和端口
SET GLOBAL group_replication_group_seeds="192.168.1.1:33061,192.168.1.2:33061,192.168.1.3:33061"; # 所有服务器的IP和端口
SET GLOBAL group_replication_start_on_boot=ON;
START GROUP_REPLICATION;
退出MySQL shell:
EXIT;
在任意一个服务器上登录到MySQL并检查集群状态:
mysql -u root -p
在MySQL shell中执行:
SELECT * FROM performance_schema.replication_group_members;
你应该能看到所有服务器的成员信息,并且状态为 ONLINE
。
通过以上步骤,你可以在CentOS上部署一个基本的MySQL集群。根据实际需求,你可能还需要配置更多的参数和选项,例如监控、自动故障转移等。建议参考MySQL官方文档以获取更详细的信息。