当前位置:   article > 正文

mysql高可用之Mha_mha4mysql-0.58 tar包

mha4mysql-0.58 tar包

                                           环境准备:需要四台服务器 centos7.9  数据库版本5.7.20

master01192.168.52.5主节点
master02192.168.52.6备主节点
slave01192.168.52.7从节点
manager192.168.52.10管理节点

注意:所有服务器都需要安装mysql服务,manager管理节点不用启动服务。

2.先在master01上装mysql数据库,配置ip地址,设置主机名  安装epel源,安装Mha依赖 配置hosts文件。克隆其他三台
#我这里数据库是二进制方式安装!
#配置ip地址,设置主机名

  1. vim /etc/sysconfig/network-scripts/ifcfg-ens33
  2. TYPE=Ethernet
  3. BOOTPROTO=static
  4. IPADDR=192.168.52.6
  5. GATEWAY=192.168.52.2
  6. DNS1=114.114.114.114
  7. hostnamectl set-hostname master01-5

#关闭防火墙和selinux

  1. systemctl stop firewalld
  2. systemctl disabled firewalld
  3. vim /etc/selinux/config
  4. SELINUX=disabled

#安装epel源

  1. wget -O /etc/yum.repos.d/epel.repo https://mirrors.aliyun.com/
  2. yum makecache

#安装Mha依赖

yum -y install perl-DBD-MySQL perl-Config-Tiny perl-Log-Dispatch perl-Parallel-ForkManager perl-Config-IniFiles ncftp perl-Params-Validate perl-CPAN perl-Test-Mock-LWP.noarch perl-LWP-Authen-Negotiate.noarch perl-devel perl-ExtUtils-CBuilder   perl-ExtUtils-MakeMaker

#配置host文件解析

  1. cat /etc/hosts
  2. 192.168.52.5 master01-5
  3. 192.168.52.6 master02-6
  4. 192.168.52.7 slave01-7
  5. 192.168.52.10 manager01-10

注意:设置主机名一定要和hosts文件中的主机名一致!
#停止mysql服务,删除auto.cnf防止uuid冲突

  1. /etc/init.d/mysql.server stop
  2. rm -f /usr/local/mysql/data/auto.cnf

#关机克隆其他三台
systemctl poweroff

3.配置ssh免密登录,安装插件,配置半同步 所有的主机都要配置(master01,master02,slave01,manager不用安装插件)
#配置ssh免密登录

  1. ssh-keygen -t rsa
  2. for i in {master01-5,master02-6,slave01-7,manager01-10};do ssh-copy-id $i;done

#查看插件的位置,我这里在/usr/local/mysql/lib/plugin/ 
show variables like '%plugin%';


#查看是否支持动态载入
show variables like '%dynam%';


#安装插件
INSTALL PLUGIN rpl_semi_sync_master SONAME 'semisync_master.so';
INSTALL PLUGIN rpl_semi_sync_slave SONAME 'semisync_slave.so'; 

#配置半同步
#查看半同步配置默认是关闭
show variables like '%semi%';


#在配置文件里,配置半同步

master01配置:

  1. vim /etc/my.cnf
  2. [mysqld]
  3. basedir=/usr/local/mysql
  4. datadir=/usr/local/mysql/data
  5. pid-file=/usr/local/mysql/data/mysqld.pid
  6. log-error=/usr/local/mysql/data/mysql.err
  7. socket=/tmp/mysql.sock
  8. log_bin=mysql-bin #开启二进制日志
  9. server_id=1 #设置server_id,不能重复
  10. relay_log=relay-bin #开启中继日志
  11. relay_log_index=relay_slave_bin.index #中继日志索引文件位置
  12. relay_log_purge=0 #关闭清除中继日志
  13. rpl_semi_sync_master_enabled=1 #开启半同步
  14. rpl_semi_sync_slave_enabled=1
  15. rpl_semi_sync_master_timeout=1000 #设置超时时间
  16. binlog_format=mixed #二进制类型设置为混合类型

master02配置:

  1. vim /etc/my.cnf
  2. [mysqld]
  3. basedir=/usr/local/mysql
  4. datadir=/usr/local/mysql/data
  5. pid-file=/usr/local/mysql/data/mysqld.pid
  6. log-error=/usr/local/mysql/data/mysql.err
  7. socket=/tmp/mysql.sock
  8. log_bin=mysql-bin
  9. server_id=2
  10. relay_log=relay-bin
  11. relay_log_index=relay_slave_bin.index
  12. relay_log_purge=0
  13. rpl_semi_sync_master_enabled=1
  14. rpl_semi_sync_slave_enabled=1
  15. rpl_semi_sync_master_timeout=1000
  16. binlog_format=mixed

slave01配置:

  1. vim /etc/my.cnf
  2. [mysqld]
  3. basedir=/usr/local/mysql
  4. datadir=/usr/local/mysql/data
  5. pid-file=/usr/local/mysql/data/mysqld.pid
  6. log-error=/usr/local/mysql/data/mysql.err
  7. socket=/tmp/mysql.sock
  8. log_bin=mysql-bin
  9. server_id=3
  10. relay_log=relay-bin
  11. relay_log_index=relay_slave_bin.index
  12. rpl_semi_sync_slave_enabled=1
  13. binlog_format=mixed
  14. read_only=1

配置完成重启服务:

/etc/init.d/mysql restart

#查看半同步状态
show status like ‘%rpl_semi_sync%’;

4.创建用户,做主从复制,安装部署Mha
master01,master02(创建rep和manager用户)slave只需要创建manager用户
#创建用户

  1. grant replication client ,replication slave on *.* to rep@'192.168.52.%' identified by
  2. '123';
  3. grant all on *.* to manager@'192.168.52.%' identified by '123';

#配置主从复制 master02和slave01相同操作
#查看二进制日志状态
show master status;
#master02从master01。

  1. change master to
  2. master_host='192.168.52.5',
  3. master_user='rep',
  4. master_password='123',
  5. master_log_file='mysql-bin.000001',
  6. master_log_pos=761;

#启动查看状态
start slave;
show slave status\G

#安装Mha(master01,master02,slave01,manager)
操作管理节点需要两个都安装, 在3台数据库节点只要安装MHA的node节点:
上传mha4mysql-node和manager包

 下载地址:Releases · yoshinorim/mha4mysql-manager · GitHub

                   Releases · yoshinorim/mha4mysql-node · GitHub

  1. tar zxf mha4mysql-node-0.58.tar.gz
  2. cd mha4mysql-node-0.58
  3. perl Makefile.PL
  4. make && make install
  5. manager节点上操作:
  6. tar zxf mha4mysql-manager-0.58.tar.gz
  7. cd mha4mysql-manager-0.58/
  8. perl Makefile.PL
  9. make && make install
  10. mkdir /etc/masterha
  11. mkdir -p /masterha/app
  12. mkdir /scripts
  13. cp samples/conf/* /etc/masterha/
  14. cp samples/scripts/* /scripts/

#配置manager文件

  1. cat app1.cnf
  2. [server default]
  3. manager_workdir=/masterha/app1
  4. manager_log=/masterha/app1/manager.log
  5. user=manager
  6. password=123
  7. ssh_user=root
  8. repl_user=rep
  9. repl_password=123
  10. ping_interval=1
  11. [server1]
  12. hostname=192.168.52.5
  13. port=3306
  14. master_binlog_dir=/usr/local/mysql/data
  15. candidate_master=1
  16. [server2]
  17. hostname=192.168.52.6
  18. port=3306
  19. master_binlog_dir=/usr/local/mysql/data
  20. candidate_master=1
  21. [server3]
  22. hostname=192.168.52.7
  23. port=3306
  24. master_binlog_dir=/usr/local/mysql/data
  25. no_master=1
  26. #清空masterha_default.cnf文件
  27. >/etc/masterha/masterha_default.cnf
  1. #SSH有效验证
  2. masterha_check_ssh --global_conf=/etc/masterha/masterha_default.cnf --conf=/etc/masterha/app1.cnf
  3. masterha_check_repl --conf=/etc/masterha/app1.cnf
  4. 在(master01,master02,slave01,manager)上做软链接
  5. ln -s /usr/local/mysql/bin/* /usr/local/bin/
  6. #启动Mha服务
  7. nohup masterha_manager --global_conf=/etc/masterha/masterha_default.cnf --conf=/etc/masterha/app1.cnf &>/tmp/mha_manager.log &
  8. #查看状态
  9. masterha_check_status --conf=/etc/masterha/app1.cnf
  10. 模拟故障
  11. 如果Mha启动失败,查看tailf /masterha/app1/manager.log日志
  12. 解决问题后删除app1.failover.complete 文件
  13. rm -f /masterha/app1/app1.failover.complete
  14. 重新启动Mha服务
  15. nohup masterha_manager --global_conf=/etc/masterha/masterha_default.cnf --conf=/etc/masterha/app1.cnf &>/tmp/mha_manager.log &

到这里Mha服务已经部署完成了!!!

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

闽ICP备14008679号