当前位置:   article > 正文

简述Mariadb MHA高可用搭建步骤_mariadb10.5部署mha

mariadb10.5部署mha

一、基础环境搭建

1.环境需求

主机名      系统型号IP地址

需要安装的软件

作用

master       

CentOS 7 64 位192.168.115.130mysql 5.7、MHA node作为主机
mhaCentOS 7 64 位

192.168.115.128

MHA node 和 manager 组件作为管理机
slaveCentOS 7 64 位192.168.115.131mysql 5.7、MHA node作为从机
slave2CentOS 7 64 位192.168.115.132mysql 5.7、MHA node作为从机

2.实现各机免密登录

  1. [root@slave ~]# ssh-keygen 生成密钥
  2. [root@slave ~]# ssh-copy-id 192.168.115.128 将密钥上传给其他三台机器

3.实现各机域名免密登录

vim /etc/hosts 写入内容,每个虚拟机都要写入

4.配置主从复制环境的配置文件

  1. vim /etc/my.cnf 进入配置文件
  2. 主机
  3. server-id=20
  4. log-bin=master-bin
  5. log-slave-updates=true
  6. 从机
  7. server-id=30
  8. log-bin=master-bin
  9. relay-log=relay-log-bin
  10. relay-log-index=relay-log-bin.index

5.赋予权限

  1. 主机
  2. [root@master ~]# mysql -e "grant replication slave on *.* to 'myslave'@'192168.115.%' identified by '123.com';"
  3. [root@master ~]# mysql -e "grant replication slave on *.* to 'myslave'@'192.168.115.%' identified by '123.com';"
  4. [root@master ~]# mysql -e "grant all privileges on *.* to 'mha'@'192.168.115.%' identified by '123.com';"
  5. [root@master ~]# mysql -e "grant all privileges on *.* to 'mha'@'192.168.115.128' identified by '123.com';"
  6. [root@master ~]# mysql -e "grant all privileges on *.* to 'mha'@'192.168.115.131' identified by '123.com';"
  7. [root@master ~]# mysql -e "grant all privileges on *.* to 'mha'@'192.168.115.132' identified by '123.com';"
  8. 从机1
  9. [root@slave ~]# mysql -e "grant replication slave on *.* to 'myslave'@'192.168.115.%' identified by '123.com';"
  10. [root@slave ~]# mysql -e "grant all privileges on *.* to 'mha'@'192.168.115.%' identified by '123.com';"
  11. [root@slave ~]# mysql -e "grant all privileges on *.* to 'mha'@'192.168.115.130' identified by '123.com';"
  12. [root@slave ~]# mysql -e "grant all privileges on *.* to 'mha'@'192.168.115.132' identified by '123.com';"
  13. [root@slave ~]# mysql -e "grant all privileges on *.* to 'mha'@'192.168.115.128' identified by '123.com';"
  14. 从机2
  15. [root@slave2 ~]# mysql -e "grant replication slave on *.* to 'myslave'@'192.168.115.%' identified by '123.com';"
  16. [root@slave2 ~]# mysql -e "grant all privileges on *.* to 'mha'@'192.168.115.%' identified by '123.com';"
  17. [root@slave2 ~]# mysql -e "grant all privileges on *.* to 'mha'@'192.168.115.128' identified by '123.com';"
  18. [root@slave2 ~]# mysql -e "grant all privileges on *.* to 'mha'@'192.168.115.130' identified by '123.com';"
  19. [root@slave2 ~]# mysql -e "grant all privileges on *.* to 'mha'@'192.168.115.131' identified by '123.com';"

 二、安装环境

1.所有节点安装perl环境

  1. [root@master ~]# yum install epel-release -y
  2. [root@master ~]# yum -y install perl-DBD-MySQL perl-ExtUtils-MakeMaker perl-Config-Tiny perl-Log-Dispatch perl-Parallel-ForkManager perl-Time-HiRes perl-CPAN

2.所有节点安装node

准备一个node压缩包,解压并编译安装

  1. [root@master ~]# tar xf mha4mysql-node-0.57.tar.gz
  2. [root@master ~]# cd mha4mysql-node-0.57/
  3. [root@master mha4mysql-node-0.57]# perl Makefile.PL && make && make install
  4. [root@master mha4mysql-node-0.57]# cd /usr/local/bin
  5. 看到可执行文件 即为成功

3.MHA主机解压安装mha4mysql-manager-0.57.tar 

  1. [root@mha ~]# tar xf mha4mysql-manager-0.57.tar.gz
  2. [root@mha ~]# cd mha4mysql-manager-0.57/
  3. [root@mha mha4mysql-manager-0.57]# perl Makefile.PL && make && make install

4.做路径优化

  1. [root@mha mha4mysql-manager-0.57]# cp samples/scripts/master_ip_failover /usr/local/bin/
  2. [root@mha mha4mysql-manager-0.57]# cp samples/scripts/master_ip_online_change /usr/local/bin/

5.修改配置文件

(1)mha虚拟机创建配置文件文件夹

  1. mkdir /etc/masterha
  2. vim /etc/masterha/app1.cnf

(2)写入

  1. #!/usr/bin/envperl
  2. use strict;
  3. use warnings FATAL => 'all';
  4. use Getopt::Long;
  5. my (
  6. $command, $ssh_user,
  7. $orig_master_host, $orig_master_ip,
  8. $orig_master_port,
  9. $new_master_host, $new_master_ip,
  10. $new_master_port
  11. );
  12. #############################添加内容部分#########################################
  13. my $vip = '192.168.115.200'; #指定vip的地址
  14. my $brdc = '192.168.115.255'; #指定vip的广播地址
  15. my $ifdev = 'ens33'; #指定vip绑定的网卡
  16. my $key = '1'; #指定vip绑定的虚拟网卡序列号
  17. my $ssh_start_vip = "/sbin/ifconfig ens33:$key $vip"; #代表此变量值为ifconfig ens33:1 192.168.184.200
  18. 1,1 顶端

(3)建立masterha配置文件

  1. [root@mha ~]# mkdir /etc/masterha
  2. [root@mha ~]# vim /etc/masterha/app1.cnf
  1. [server default]
  2. managera_log=/var/log/masterha/app1/manager.log
  3. manager_workdir=/var/log/masterha/app1
  4. master_binlog_dir=/var/lib/mysql
  5. master_ip_failover_script=/usr/local/bin/master_ip_failover
  6. master_ip_online_change_script=/usr/local/bin/master_ip_online_change
  7. password=manager
  8. ping_interval=1
  9. remote_workdir=/tmp
  10. repl_password=123.com
  11. repl_user=myslave
  12. secondary_check_script=/usr/local/bin/masterha_secondary_check -s 192.168.115.131 -s 192.168.115.132
  13. shutdown_script=""
  14. ssh_user=root
  15. user=mha
  16. [server1]
  17. hostname=192.168.115.130
  18. port=3306
  19. [server2]
  20. candidate_master=1
  21. check_repl_delay=0
  22. hostname=192.168.115.131
  23. port=3306
  24. [server3]
  25. hostname=192.168.115.132
  26. port=3306

6.检查配置文件

  1. [root@mha bin]# masterha_check_ssh --conf=/etc/masterha/app1.cnf
  2. [root@mha bin]# masterha_check_repl --conf=/etc/masterha/app1.cnf

报错: 

我在检查第二个配置文件时出现此报错时,我去检查此文件的路径,发现文件没错,后来我把该文件删除重新写了一份,问题解决,移动此位置也没用,必须删除重建。

三、验证

1.启动manager

 nohup masterha_manager --conf=/etc/masterha/app1.cnf --remove_dead_master_conf --ignore_last_failover < /dev/null > /var/log/masterha/app1/manager.log 2>&1 &

2.停止master的mariadb服务

3.查询日志信息

  1. [root@mha etc]# cd /var/log/masterha/app1/
  2. [root@mha app1]# less manager.log

 从下面的日志信息中可用看出,主机130已经停止,从机131成为新的主机

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/知新_RL/article/detail/388638
推荐阅读
相关标签
  

闽ICP备14008679号