在CentOS上部署MySQL集群可以通过多种方式实现,其中最常见的是使用MySQL Group Replication。以下是一个基本的步骤指南,帮助你在CentOS上部署一个MySQL集群。
前提条件- CentOS 7或更高版本。至少三台服务器(用于高可用性和数据冗余)。MySQL 5.7或更高版本。
在所有服务器上安装MySQL。
sudo yum install -y mysql-server
启动并启用MySQL服务:
sudo systemctl start mysqldsudo systemctl enable mysqld
2. 配置MySQL编辑MySQL配置文件 /etc/my.cnf
或 /etc/mysql/my.cnf
,添加以下内容:
[mysqld]server-id=1# 每个服务器的唯一IDgtid_mode=ONenforce_gtid_consistency=ONbinlog_checksum=CRC32master_info_repository=TABLErelay_log_info_repository=TABLEtransaction_write_set_extraction=XXHASH64loose-group_replication_group_name="aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeeeee"# 集群名称loose-group_replication_start_on_boot=off# 启动时不自动加入集群loose-group_replication_ssl_mode=REQUIREDloose-group_replication_recovery_use_ssl=1loose-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;
4. 加入其他服务器在其他服务器上启动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;
5. 验证集群状态在任意一个服务器上登录到MySQL并检查集群状态:
mysql -u root -p
在MySQL shell中执行:
SELECT * FROM performance_schema.replication_group_members;
你应该能看到所有服务器的成员信息,并且状态为 ONLINE
。
通过以上步骤,你可以在CentOS上部署一个基本的MySQL集群。根据实际需求,你可能还需要配置更多的参数和选项,例如监控、自动故障转移等。建议参考MySQL官方文档以获取更详细的信息。