MHA搭建

Posted plutozzl

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MHA搭建相关的知识,希望对你有一定的参考价值。

安装mysql:(RPM包安装)

系统环境:

    Linux version 2.6.32-642.el6.x86_64
    mysql Ver 14.14 Distrib 5.6.40
    mha-manager-0.56,mha-node-0.56

整体架构:

+ 角色分配:

技术图片
+ 整体架构图:
技术图片

安装部分:

MySQL安装:
  • 先查看系统本身是否存在MySQL或者mariadb,若存在将其卸载(把一切与mysql有关的都删除):
    rpm -qa | grep mysql && yum -y remove mysql
    whereis mysql
    find / -name mysql
  • 将下载好的压缩包解压:
    技术图片
    [root@master mysql5.6]# rpm -ivh MySQL-* #安装
  • 安装完成后,查看MySQL初始密码并进行修改:
    技术图片
    使用此密码登入数据库进行密码修改:
    mysql> set password=password(‘1234‘)

    • 配置三个数据节点的主从关系:
      修改 节点master 的数据库配置文件/etc/my.cnf,追加
      server-id=205
      log-bin=mysql-bin,同理修改其他两个节点的配置文件,注意server-id不可相同。保存后重启数据服务。
      [root@master mysql5.6]# /etc/init.d/mysql restart
      登入数据库,进行授权操作:
      mysql> grant replication slave,reload,super on . to slave@‘192.168.1.%‘ identified by ‘1234‘;
      mysql> flush privileges;
      技术图片
      对 节点slave1 进行操作,如master节点一样修改相应的参数文件后,重启mysql服务然后登入数据库。配置从属关系。
      mysql > change master to master_host=‘192.168.1.205‘,master_port=3306,master_user=‘slave‘,master_password=‘1234‘,master_log_file=‘mysql-bin.000001‘,master_log_pos=423;
      mysql> start slave;
      mysql> show slave statusG;
      Slave_IO_Running: Yes
      Slave_SQL_Running: Yes
      mysql> grant replication slave,reload,super on . to slave@‘192.168.1.%‘ identified by ‘1234‘;
      mysql> flush privileges;
      对节点slave2 进行操作,同样修改参数文件后,登入数据库更改从属关系。
      mysql > change master to master_host=‘192.168.1.205‘,master_port=3306,master_user=‘slave‘,master_password=‘1234‘,master_log_file=‘mysql-bin.000001‘,master_log_pos=423;
      mysql> start slave;
      mysql> show slave statusG;
      Slave_IO_Running: Yes
      Slave_SQL_Running: Yes
      mysql> grant replication slave,reload,super on . to slave@‘192.168.1.%‘ identified by ‘1234‘;
      mysql> flush privileges;
      • 进行测试
        登入master节点,执行 mysql> show slave hosts;看到其他两个从节点即成功。

    执行安装命令:
    yum -y install mysql-server
    等待安装完成后,查看相应的包是否安装成功
    rpm -qa | grep mysql
    启动MySQL:
    systemctl start mysqld
    查看MySQL是否正常启动:
    netstat -antp | grep mysqld
    由于MySQL安装启动后会自动生成临时密码,需要在日志中将此密码过滤出来:
    grep ‘temporary password‘ /var/log/mysqld.log
    登录成功后,进行密码的修改
    此时未修改临时密码需要先进行修改
    mysql> set password=‘ABCabc123!@#‘;
    开启远程控制:
    MySQL默认未开启远程控制即只能自己访问别的主机无法访问此数据库,必须添加远程访问的用户。

MHA安装与配置:
+ 首先配置四台主机之间免密登陆。        

[root@master ~]# echo -e " " |ssh-keygen -t dsa -N ""
[root@master ~]# ssh-copy-id -i .ssh/id_dsa.pub root@192.168.1.211
[root@master ~]# ssh-copy-id -i .ssh/id_dsa.pub root@192.168.1.202
[root@master ~]# ssh-copy-id -i .ssh/id_dsa.pub root@192.168.1.204

  • 安装软件。
    先创建repo,使用ftp给各节点推送安装包(方法有很多)。
    vim ftp-mha.repo
    [mha]
    name=mha
    baseurl=ftp://192.168.1.234/rpm/6mha
    enabled=1
    gpgcheck=0
    给各个非manager节点安装mha4mysql-node。
    并执行:
    mysql> grant super,reload,replication client,select on . to manager@‘192.168.1.%‘ identified by ‘1234‘;
    mysql> grant create,insert,update,delete,drop on. to manager@‘192.168.1.%‘;
    mysql> flush privileges;

在manager节点上编辑配置文件:

vim /etc/masterha_default.cnf

[server default]
manager_workdir=/var/log/masterha/app1
manager_log=/var/log/masterha/app1/manager.log
remote_workdir=/var/log/masterha/app
ssh_user=root
user=manager
password=1234
repl_user=slave
repl_password=1234
ping_interval=1
master_ip_failover_script="/etc/masterha/master_ip_failover"

master_ip_online_change_script="/etc/masterha/master_ip_online_change"

mkdir /etc/masterha

vim /etc/masterha/app1.cnf

/*---
[server default]
manager_workdir=/var/log/masterha/app1
manager_log=/var/log/masterha/app1/manager.log

ssh_user=root
user=manager
password=1234
repl_user=slave
repl_password=1234

ping_interval=1

[server1]
hostname=192.168.1.211
candidate_master=1
master_binlog_dir=/data/mysql/

[server2]
hostname=192.168.1.202
candidate_master=1
master_binlog_dir=/data/mysql/

[server3]
hostname=192.168.1.205

candidate_master=1

master_binlog_dir=/data/mysql/

---*/
































































































以上是关于MHA搭建的主要内容,如果未能解决你的问题,请参考以下文章

MySQL——MHA搭建

MHA快速搭建

mysql5.6基于GTID模式之高可用架构搭建-MHA(mha0.56)

搭建MHA实现MySQL集群高可用

数据库_MHA群集搭建

MHA的搭建