在CentOS上进行MySQL集群部署,通常会选择使用MySQL Group Replication或者Galera Cluster。以下是两种常见的集群部署方式:
MySQL Group Replication是MySQL 5.7及以上版本引入的一种基于组复制的高可用性解决方案。
安装MySQL: 确保所有节点上都安装了相同版本的MySQL。
sudo yum install -y mysql-server
配置MySQL:
在每个节点上编辑/etc/my.cnf或/etc/mysql/my.cnf文件,添加以下配置:
[mysqld]
server_id=1 # 每个节点的唯一ID
gtid_mode=ON
enforce_gtid_consistency=ON
master_info_repository=TABLE
relay_log_info_repository=TABLE
binlog_checksum=NONE
log_slave_updates=ON
transaction_write_set_extraction=XXHASH64
loose-group_replication_bootstrap_group=OFF # 只在第一个节点上设置为ON
loose-group_replication_start_on_boot=off
loose-group_replication_group_name="aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeeeee" # 集群名称
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_single_primary_mode=ON # 单主模式
loose-group_replication_enforce_update_everywhere_checks=ON
请根据实际情况修改server_id、local_address和group_seeds。
启动MySQL服务: 在每个节点上启动MySQL服务。
sudo systemctl start mysqld
初始化集群: 在第一个节点上执行以下命令来初始化集群:
SET GLOBAL group_replication_bootstrap_group=ON;
START GROUP_REPLICATION;
SET GLOBAL group_replication_bootstrap_group=OFF;
加入其他节点: 在其他节点上执行以下命令来加入集群:
STOP GROUP_REPLICATION;
RESET MASTER ALL;
CHANGE MASTER TO MASTER_HOST='192.168.1.1', MASTER_USER='replicator', MASTER_PASSWORD='password', MASTER_AUTO_POSITION=1;
START GROUP_REPLICATION;
请根据实际情况修改MASTER_HOST、MASTER_USER和MASTER_PASSWORD。
Galera Cluster是一种基于多主复制的集群解决方案,适用于MySQL 5.5及以上版本。
安装MySQL: 确保所有节点上都安装了相同版本的MySQL。
sudo yum install -y mysql-server
配置MySQL:
在每个节点上编辑/etc/my.cnf或/etc/mysql/my.cnf文件,添加以下配置:
[mysqld]
wsrep_provider=/usr/lib/galera/libgalera_smm.so
wsrep_cluster_address=gcomm://192.168.1.1,192.168.1.2,192.168.1.3
wsrep_node_address=192.168.1.1
wsrep_node_name=node1
wsrep_sst_method=xtrabackup-v2
wsrep_sst_auth=user:password
wsrep_sst_receive_address=192.168.1.1
wsrep_sst_port=4567
wsrep_on=ON
请根据实际情况修改wsrep_cluster_address、wsrep_node_address、wsrep_node_name、wsrep_sst_method、wsrep_sst_auth和wsrep_sst_receive_address。
启动MySQL服务: 在每个节点上启动MySQL服务。
sudo systemctl start mysqld
验证集群状态: 在任意一个节点上执行以下命令来验证集群状态:
SHOW STATUS LIKE 'wsrep_cluster_size';
如果返回值大于1,说明集群已经成功启动。
通过以上步骤,你可以在CentOS上成功部署MySQL集群。