Centos-7 MHA的部署

测试环境如下

192.168.124.177192.168.124.178192.168.124.179192.168.124.182
mysql mastermysql slavemysql slavemha

在177,178,179上都安装好mariadb

yum -y install mariadb mariadb-server

在配置mariadb的配置文件177

vim /etc/my.cnf
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
# Settings user and group are ignored when systemd is used.
# If you need to run mysqld under a different user or group,
# customize your systemd unit file for mariadb according to the
# instructions in http://fedoraproject.org/wiki/Systemd
server-id=1
log_bin=mysql-bin
relay_log=mysql-relay

[mysqld_safe]
log-error=/var/log/mariadb/mariadb.log
pid-file=/var/run/mariadb/mariadb.pid

#
# include all files from the config directory
#
!includedir /etc/my.cnf.d

保存退出后启动

systemctl start mariadb

登录mariadb

mysql
MariaDB [(none)]> grant replication slave on *.* to 'tom'@'%' identified by'123';
MariaDB [(none)]> show master status;

+------------------+----------+--------------+------------------+
| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000003 |      382 |              |                  |
+------------------+----------+--------------+------------------+
1 row in set (0.00 sec)

然后配置从178的主机mariadb配置文件

 11 server-id=2
 12 log_bin=mysql-bin
 13 relay_log=mysql-relay
 14 #是否自动清空不再需要中继日志
 15 relay_log_purge = 0
 16 #使得更新的数据写进二进制日志中
 17 log_slave_updates = 1
 18 #启用只读属性
 19 read_only = ON

同样保存退出开起mariadb

systemctl start mariadb
mysql

登录后开始配置连接

grant replication slave on *.* to 'tom'@'%' identified by'123';

MariaDB [(none)]> change master to master_user='tom',master_password='123',master_host='192.168.124.177',master_log_file='mysql-bin.000003',master_log_pos=382;

开起从

start slave;

查看状态

show slave status \G;

看到双yes证明成功了
在这里插入图片描述
178和179的从配置文件添加11至19行

 11 server-id=3
 12 log_bin=mysql-bin
 13 relay_log=mysql-relay
 14 #是否自动清空不再需要中继日志
 15 relay_log_purge = 0
 16 #使得更新的数据写进二进制日志中
 17 log_slave_updates = 1
 18 #启用只读属性
 19 read_only = ON

在这里插入图片描述

保存退出后启动

systemctl start mariadb
mysql

然后执行


grant replication slave on *.* to 'tom'@'%' identified by'123';

change master to master_user='tom',master_password='123',master_host='192.168.124.177',master_log_file='mysql-bin.000003',master_log_pos=382;

启动从

start slave;

查看
在这里插入图片描述
这样一主多从配置完毕了
然后开始部署mha的前提条件设置免密
177主机执行

ssh-keygen -t rsa
ssh-copy-id -i .ssh/id_rsa.pub root@192.168.124.178
ssh-copy-id -i .ssh/id_rsa.pub root@192.168.124.179
ssh-copy-id -i .ssh/id_rsa.pub root@192.168.124.182

178主机

ssh-keygen -t rsa
ssh-copy-id -i .ssh/id_rsa.pub root@192.168.124.177
ssh-copy-id -i .ssh/id_rsa.pub root@192.168.124.179
ssh-copy-id -i .ssh/id_rsa.pub root@192.168.124.182

然后179主机

ssh-keygen -t rsa
ssh-copy-id -i .ssh/id_rsa.pub root@192.168.124.177
ssh-copy-id -i .ssh/id_rsa.pub root@192.168.124.178
ssh-copy-id -i .ssh/id_rsa.pub root@192.168.124.182

182的主机

ssh-keygen -t rsa
ssh-copy-id -i .ssh/id_rsa.pub root@192.168.124.177
ssh-copy-id -i .ssh/id_rsa.pub root@192.168.124.178
ssh-copy-id -i .ssh/id_rsa.pub root@192.168.124.179

ssh 的 -t是指定一种类型
完事后可以互相登录测试一下是不是免密我这本机是182主机
在这里插入图片描述
在主mariadb 上授权一个mha用的账户这个用户注意不要写错不然会连不上

MariaDB [(none)]> grant all on *.* to 'mhaadmin'@'%' identified by'123';

然后安装mha,mha有两个包分别是node和manager。
在这里插入图片描述

node每个主机都装manager只在mha上装
在这里插入图片描述

rpm -ivh mha4mysql-node-0.56-0.el6.noarch.rpm

当mha主机装的时候会少依赖,安装依赖

yum install perl-DBD-mysql perl-DBI
rpm -ivh mha4mysql-node-0.56-0.el6.noarch.rpm

然后安装managerar安装前也要安装依赖


yum -y install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm

yum -y install perl-ExtUtils-CBuilder perl-ExtUtils-MakeMaker perl-Config-Tiny perl-Log-Dispatch-* perl-Parallel-ForkManager

然后安装

rpm -ivh mha4mysql-manager-0.56-0.el6.noarch.rpm

然后配置mha的管理节点

mkdir /etc/mha_master
vim /etc/mha_master/mha.cnf

配置如下

[server default]           
user=mhaadmin              
password=123          
manager_workdir=/etc/mha_master/app1       
manager_log=/etc/mha_master/manager.log    
remote_workdir=/mydata/mha_master/app1    
ssh_user=root               
repl_user=tom             
repl_password=123       
ping_interval=1        
[server1]                   
hostname=192.168.124.177     
ssh_port=22                 
candidate_master=1          
[server2]
hostname=192.168.124.178
ssh_port=22
candidate_master=1
[server3]
hostname=192.168.124.179
ssh_port=22
candidate_master=1

讲解
在这里插入图片描述
然后在管理节点检测ssh连通性

masterha_check_ssh -conf=/etc/mha_master/mha.cnf

正常结果为
在这里插入图片描述
检测MySQL replication是否正常

masterha_check_repl --conf=/etc/mha_master/mha.cnf

启动mha

nohup masterha_manager --conf=/etc/mha_master/mha.cnf &> /etc/mha_master/manager.log &

在这里插入图片描述

检查master节点状态

masterha_check_status --conf=/etc/mha_master/mha.cnf

在这里插入图片描述

mha的关闭命令

masterha_stop -conf=/etc/mha_master/mha.cnf

测试关掉master

systemctl stop mariadb

查看主变成了178
在这里插入图片描述
这个时候mha是就停止了再起启用需要吧down掉的主库启动改为从库操作如下。

先在主库查看

MariaDB [(none)]> show master status;
+------------------+----------+--------------+------------------+
| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000004 |      245 |              |                  |
+------------------+----------+--------------+------------------+
1 row in set (0.00 sec)

在启动down掉的数据库吧它变成从在开启

systemctl start mariadb
mysql
MariaDB [(none)]> change master to
    -> master_user='tom',
    -> master_password='123',
    -> master_host='192.168.124.178',
    -> master_log_file='mysql-bin.000004',
    -> master_log_pos=245;
Query OK, 0 rows affected (0.05 sec)

MariaDB [(none)]> start slave;
Query OK, 0 rows affected (0.00 sec)

查看从的状态

MariaDB [(none)]> show slave status \G;;
*************************** 1. row ***************************
               Slave_IO_State: Waiting for master to send event
                  Master_Host: 192.168.124.178
                  Master_User: tom
                  Master_Port: 3306
                Connect_Retry: 60
              Master_Log_File: mysql-bin.000004
          Read_Master_Log_Pos: 245
               Relay_Log_File: mysql-relay.000002
                Relay_Log_Pos: 529
        Relay_Master_Log_File: mysql-bin.000004
             Slave_IO_Running: Yes
            Slave_SQL_Running: Yes

在启动mha

nohup masterha_manager --conf=/etc/mha_master/mha.cnf &> /etc/mha_master/manager.log &

查看

[root@localhost ~]# masterha_check_status --conf=/etc/mha_master/mha.cnf
mha (pid:92258) is running(0:PING_OK), master:192.168.124.178

删除无用节点的启动,–remove_dead_master_conf表示发生主从切换后,老的master服务器配置检查配置文件中删除

masterha_manager --conf=/etc/masterha/mha.cnf --remove_dead_masrer_conf

如果要第二次用的话要除了手动吧down掉的主改为从之外还要删除这个文件

rm -rf /etc/mha_master/app1/mha.failover.complete

在这里插入图片描述

参考文章
https://blog.csdn.net/ling_76539446/article/details/103910847?ops_request_misc=&request_id=&biz_id=102&utm_term=mariadb5.5.60%25E5%2581%259Amha&utm_medium=distribute.pc_search_result.none-task-blog-2allsobaiduweb~default-0-103910847.first_rank_v2_pc_rank_v29

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值