仔仔 MHA的搭建及其作用
MHA Mysql的高可用方案
简介
MHA是一套Mysql的高可用方案,可以实现故障切换,主从提升,在目前来说是一套比较成熟的解决方案,能在30s之内自动完成数据库的故障切换,并且在故障切换的过程中,能最大程度的保证数据点的一致性
组成部分
MHA manager/Mysql node
Mysql的工作原理
MHA manager会定时探测急群众master节点
当master出现故障时,从宕机的master保存二进制日志
识别含有最新更新的slave
应用从master保存的二进制文件
提升一个slave作为新的master,使其他的slave连接新的master进行复制
四台虚拟机 ping通
将mysql文件夹拖入后三台虚拟机
关闭防火墙
后三台均需操作
查看
安装
yum -y localinstall mysql*.rpm
第一台虚拟机拖包
二三四太虚拟机拖包
后三台
启动mysql
systemctl start mysqld
查看密码
cat /var/log/mysqld.log | grep password
进入mysql
mysql -uroot -p ‘4RwJz#wh=uhd’
修改密码
alter user ‘root’@‘localhost’ identified by ‘aB123.com’;
四台
编辑文件
vim /etc/hosts
192.168.233.136 manager
192.168.233.135 mysql01
192.168.233.142 mysql02
192.168.233.139 mysql03
做免密登陆
第一台虚拟机
第二台虚拟机
第三台虚拟机
第四台虚拟机
去到mysql01
授权从用户
grant replication slave on . to ‘repl’@‘192.168.233.%’ identified by ‘aB123.com’;
刷新
flush privileges;
create database course;
use course
create table one(id int);
备份
将备份文件传到另外俩台mysql中
scp /root/course.sql mysql02:/root/
scp /root/course.sql mysql03:/root/
去到mysql02中
登陆mysql
mysql -uroot -p’aB123.com’
create database course;
use course;
source /root/course.sql
去到mysql03
登陆mysql
mysql -uroot -p’aB123.com’
create database course;
use course;
source /root/course.sql
回到mysql01
修改配置文件
vim /etc/my.cnf
log-bin=mysql-bin
server-id=1
binlog-do-db=course
binlog-ignore-db=mysql
character-set-server=utf8
init_connect=‘SET AUTOCOMMIT=0;set names utf8’
gtid_mode = on
enforce_gtid_consistency = 1
log_slave_updates = 1
plugin_load = “repl_semi_sync_master=semisync_master.so;repl_semi_sync_slave=semisync_slave=semisync_slave.so”
loose_rpl_semi_sync_master_enabled = 1
loose_rpl_semi_sync_slave_enabled = 1
loose_rpl_semi_sync_master_timeout = 5000
重启看看配置文件有没有出错
去到mysql02
修改配置文件
vim /etc/my.cnf
log-bin=mysql-bin
server-id=2
binlog-do-db=course
binlog-ignore-db=mysql
character-set-server=utf8
init_connect=‘SET AUTOCOMMIT=0;set names utf8’
gtid_mode = on
enforce_gtid_consistency = 1
log_slave_updates = 1
plugin_load = “repl_semi_sync_master=semisync_master.so;repl_semi_sync_slave=semisync_slave=semisync_slave.so”
loose_rpl_semi_sync_master_enabled = 1
loose_rpl_semi_sync_slave_enabled = 1
loose_rpl_semi_sync_master_timeout = 5000
重启看看配置文件有没有出错
去到mysql03
修改配置文件
vim /etc/my.cnf
log-bin=mysql-bin
server-id=3
binlog-do-db=course
binlog-ignore-db=mysql
character-set-server=utf8
init_connect=‘SET AUTOCOMMIT=0;set names utf8’
gtid_mode = on
enforce_gtid_consistency = 1
log_slave_updates = 1
plugin_load = "repl_semi_sync_master=semisync_master.so;repl_semi_sync_slave=semisync_slave=semis
重启看看配置文件有没有出错