• 搭建MySQL高可用架构MHA


      环境准备

    1、修改主机名

    hostnamectl set-hostname manager

    更新host文件

    vim /etc/hosts

    替换127.0.0.1后面的主机名为对应的主机名称

    127.0.0.1   master

    2、关闭防火墙,关闭Selinux

    systemctl stop firewalld  #临时关闭
    systemctl disable firewalld #永久关闭
    setenforce 0  #临时关闭
    sed -i '/SELINUX/s/enforcing/disabled/' /etc/selinux/config  #永久关闭

    3、配置hosts文件

    cat >> /etc/hosts <<EOF
    192.168.5.54 manager
    192.168.5.116 master
    192.168.5.103 slave1
    192.168.5.194 slave2
    EOF

    4、配置免密登录

    ssh-keygen -t rsa 
    ssh-copy-id -i /root/.ssh/id_rsa.pub root@manager
    ssh-copy-id -i /root/.ssh/id_rsa.pub root@master
    ssh-copy-id -i /root/.ssh/id_rsa.pub root@slave1
    ssh-copy-id -i /root/.ssh/id_rsa.pub root@slave2

    验证

    ssh manager 'hostname'
    ssh master  'hostname'
    ssh slave1  'hostname'
    ssh slave2  'hostname'

    5、配置各MySQL节点

    vim /etc/my.cnf

    修改以下相关参数,server-id值各库保持不一致即可

    [mysqld]
    #复制集群中的各节点的id均必须唯一
    server-id = 100
    #开启中继日志            
    log-bin = mysql-bin  
    #开启二进制日志   
    relay-log=relay-bin           
    #关闭名称解析(非必须)
    skip_name_resolve            
    #使得更新的数据写进二进制日志中
    log-slave-updates = 1

    重启mysql服务

    systemctl restart mysqld

    6、新建共同账号

    在3台mysql节点,新建用于复制的账号

    use mysql;
    create user 'repl'@'%' identified by 'Test@1234';
    grant replication slave on *.*  to 'repl'@'%';
    flush privileges;

    6、配置一主多从复制架构

    master节点

    show master status;

    slave1和slave2节点

    change master to master_host='192.168.5.116',
    master_port=3306,
    master_user='repl',
    master_password='Test@1234',
    master_log_file='mysql-bin.000001',
    master_log_pos=862;
    start slave;

    启动slave问题处理:Slave failed to initialize relay log info structure from the repository

    错误原因:从库之前已有relay log

    解决方法:
    使用RESET SLAVE语句,清除master信息和relay日志的信息,删除所有的relay日志文件,并开始创建一个全新的中继日志

    stop slave;
    reset slave;

     在读库节点上,查询运行状态

    show slave status G

    7、新建用户mha管理的账号

    只用在master节点执行

    use mysql;
    create user  'mhaadmin'@'192.168.%.%'  identified by 'Test@1234';
    grant all on *.*  to 'mhaadmin'@'192.168.%.%' ;
    flush privileges;

    8、安装MHA包

    四台机器上都要安装node包

    wget https://github.com/yoshinorim/mha4mysql-node/releases/download/v0.58/mha4mysql-node-0.58-0.el7.centos.noarch.rpm
    yum install -y epel-release 
    yum install -y perl-DBD-MySQL
    rpm -ivh mha4mysql-node-0.58-0.el7.centos.noarch.rpm

    manager节点

    wget https://github.com/yoshinorim/mha4mysql-manager/releases/download/v0.58/mha4mysql-manager-0.58-0.el7.centos.noarch.rpm
    yum install -y epel-release 
    yum install -y perl-DBD-MySQL perl-Config-Tiny perl-Log-Dispatch perl-Parallel-ForkManager perl-Time-HiRes
    rpm -ivh mha4mysql-manager-0.58-0.el7.centos.noarch.rpm

    9、创建Manager相关目录与配置文件

    mkdir -p /etc/mha
    mkdir -p /var/log/mha/app1
    vim /etc/mha/app1.cnf
    [server default]                        
    manager_log=/var/log/mha/app1/manager
    manager_workdir=/var/log/mha/app1
    master_binlog_dir=/data/binlog
    user=mhaadmin
    password=Test@1234
    ping_interval=2
    repl_user=repl
    repl_password=Test@1234
    ssh_user=root
    
    [server1]
    hostname=192.168.5.116
    port=3306
    
    [server2]
    hostname=192.168.5.103
    port=3306
    
    [server3]
    hostname=192.168.5.194
    port=3306

    10、检查

    检查ssh免密

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

    检查MySQL复制状态

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

    11、启动MHA服务

    nohup masterha_manager --conf=/etc/mha/app1.cnf  &> /var/log/mha/app1/manager.log &
    masterha_check_status --conf=/etc/mha/app1.cnf

  • 相关阅读:
    EXCEL中统计个数问题
    Boot Windows XP from a USB flash drive
    转:用VHD文件将Windows 7安装到虚拟磁盘
    CPU性能排名
    活动目录维护
    IE7占用CPU资源非常高
    不得不看:Windows Data Protection
    硬盘模式为UDMA 2.
    转载:NC6400安装Win7系统驱动列表及注意事项
    HP笔记本电池
  • 原文地址:https://www.cnblogs.com/Canyon/p/11058355.html
Copyright © 2020-2023  润新知