centos

centos mysql如何集群部署

小樊
43
2025-07-12 12:28:46
栏目: 云计算

在CentOS上部署MySQL集群可以通过多种方式实现,其中最常见的是使用MySQL Group Replication。以下是一个基本的步骤指南,帮助你在CentOS上部署一个MySQL集群。

前提条件

  1. CentOS 7或更高版本
  2. 至少三台服务器(用于高可用性和数据冗余)。
  3. MySQL 5.7或更高版本

步骤指南

1. 安装MySQL

在所有服务器上安装MySQL。

sudo yum install -y mysql-server

启动并启用MySQL服务:

sudo systemctl start mysqld
sudo systemctl enable mysqld

2. 配置MySQL

编辑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-idloose-group_replication_local_addressloose-group_replication_group_seeds

3. 初始化集群

在第一个服务器上启动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官方文档以获取更详细的信息。

0
看了该问题的人还看了