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

整体架构:

+ 角色分配:

MHA搭建
+ 整体架构图:
MHA搭建

安装部分:

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

    • 配置三个数据节点的主从关系:
      修改 节点master 的数据库配置文件/etc/my.cnf,追加
      server-id=205
      log-bin=mysql-bin,同理修改其他两个节点的配置文件,注意server-id不可相同。保存后重启数据服务。
      [ mysql5.6]# /etc/init.d/mysql restart
      登入数据库,进行授权操作:
      mysql> grant replication slave,reload,super on . to ‘192.168.1.%‘ identified by ‘1234‘;
      mysql> flush privileges;
      MHA搭建
      对 节点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 status\G;
      Slave_IO_Running: Yes
      Slave_SQL_Running: Yes
      mysql> grant replication slave,reload,super on . to ‘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 status\G;
      Slave_IO_Running: Yes
      Slave_SQL_Running: Yes
      mysql> grant replication slave,reload,super on . to ‘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=‘#‘;
    开启远程控制:
    MySQL默认未开启远程控制即只能自己访问别的主机无法访问此数据库,必须添加远程访问的用户。

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

[ ~]# echo -e "\n" |ssh-keygen -t dsa -N ""
[ ~]# ssh-copy-id -i .ssh/id_dsa.pub
[ ~]# ssh-copy-id -i .ssh/id_dsa.pub
[ ~]# ssh-copy-id -i .ssh/id_dsa.pub

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

---*/





相关推荐