在CentOS上实现MySQL集群的高可用性,可以采用多种方案。以下是几种常见的方法:
MySQL Group Replication是MySQL 5.7及以上版本提供的一种基于组复制的高可用解决方案。
安装MySQL:
sudo yum install mysql-server
配置MySQL:
编辑/etc/my.cnf或/etc/mysql/my.cnf文件,添加以下配置:
[mysqld]
server_id=1
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_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"
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
启动MySQL服务:
sudo systemctl start mysqld
加入集群:
在其他节点上重复上述配置,修改server_id和loose-group_replication_local_address,然后启动MySQL服务。
验证集群状态: 登录到任意一个节点,执行以下命令查看集群状态:
SELECT * FROM performance_schema.replication_group_members;
MHA是一个用于自动化主从切换的工具,支持MySQL的主从复制和高可用性。
安装MHA Manager和Node:
sudo yum install mha4mysql-manager mha4mysql-node
配置MHA Manager:
编辑/etc/masterha_default.cnf文件,添加以下配置:
[server default]
manager_workdir=/var/log/masterha/app1
manager_log=/var/log/masterha/app1/manager.log
master_ip_failover_script=/usr/local/bin/master_ip_failover
master_ip_online_change_script=/usr/local/bin/master_ip_online_change
[server1]
hostname=192.168.1.1
user=mha_user
password=mha_password
ssh_user=root
[server2]
hostname=192.168.1.2
user=mha_user
password=mha_password
ssh_user=root
启动MHA Manager:
nohup masterha_manager --conf=/etc/masterha_default.cnf &
配置MHA Node: 在每个MySQL节点上执行以下命令:
masterha_check_ssh --conf=/etc/masterha_default.cnf
masterha_check_repl --conf=/etc/masterha_default.cnf
手动测试故障转移:
masterha_check_failover --conf=/etc/masterha_default.cnf
Orchestrator是一个用于管理和监控MySQL复制拓扑的工具。
安装Orchestrator:
sudo yum install orchestrator
配置Orchestrator:
编辑/etc/orchestrator/orchestrator.conf文件,添加MySQL连接信息。
启动Orchestrator:
sudo systemctl start orchestrator
监控和管理: 使用Orchestrator的Web界面或命令行工具进行监控和管理。
选择哪种方案取决于你的具体需求和环境。MySQL Group Replication是MySQL官方推荐的高可用解决方案,适合大多数场景。MHA和Orchestrator则提供了更多的灵活性和功能,适合复杂的环境和需求。