赞
踩
在此之前需要配置Mysql主从复制的环境,推荐文章:Mysql的主从复制-您数据库安全的保障
MHA 是一套用于管理 MySQL 主从复制的开源工具,主要用于在主服务器故障时,自动进行故障转移和主从切换,以确保数据库服务的持续可用。
MHA 会监控主服务器的状态,当检测到主服务器故障时,它会按照以下步骤进行操作:
至少需要三台 MySQL 服务器(1 主 2 从或更多)。
编辑 MySQL 配置文件 (my.cnf
):
[mysqld]
server-id=1
log-bin=mysql-bin
重启 MySQL 服务:
sudo systemctl restart mysql
在 MySQL 中创建复制用户:
CREATE USER 'repl'@'%' IDENTIFIED BY 'password';
GRANT REPLICATION SLAVE ON *.* TO 'repl'@'%';
FLUSH PRIVILEGES;
编辑 MySQL 配置文件 (my.cnf
):
[mysqld]
server-id=2
relay-log=relay-bin
重启 MySQL 服务:
sudo systemctl restart mysql
配置从服务器指向主服务器:
CHANGE MASTER TO
MASTER_HOST='master_host',
MASTER_USER='repl',
MASTER_PASSWORD='password',
MASTER_LOG_FILE='mysql-bin.000001',
MASTER_LOG_POS=4;
START SLAVE;
sudo apt-get update
sudo apt-get install -y perl libdbi-perl libdbd-mysql-perl libio-socket-ssl-perl libconfig-tiny-perl
wget https://github.com/yoshinorim/mha4mysql-manager/releases/download/v0.58/mha4mysql-node_0.58-0_all.deb
wget https://github.com/yoshinorim/mha4mysql-manager/releases/download/v0.58/mha4mysql-manager_0.58-0_all.deb
sudo dpkg -i mha4mysql-node_0.58-0_all.deb
sudo dpkg -i mha4mysql-manager_0.58-0_all.deb
在 MHA 管理节点上创建配置文件 (/etc/mha.cnf
):
[server default] manager_workdir=/var/log/masterha/app1 manager_log=/var/log/masterha/app1/manager.log user=root password=yourpassword ssh_user=root repl_user=repl repl_password=password ping_interval=1 [server1] hostname=master_host [server2] hostname=slave1_host [server3] hostname=slave2_host
在管理节点生成 SSH 密钥:
ssh-keygen -t rsa
将公钥复制到各 MySQL 服务器:
ssh-copy-id root@master_host
ssh-copy-id root@slave1_host
ssh-copy-id root@slave2_host
masterha_check_ssh --conf=/etc/mha.cnf
masterha_check_repl --conf=/etc/mha.cnf
masterha_manager --conf=/etc/mha.cnf
停止主服务器 MySQL 服务:
sudo systemctl stop mysql
检查 MHA 切换:
tail -f /var/log/masterha/app1/manager.log
通过合理配置和运用 MHA 工具,我们能够在 MySQL 主从复制架构中实现高效的主从切换,大大提高数据库的高可用性,为业务的稳定运行提供坚实的保障。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。