MHA部署

目录

高可用集群MHA

环境准备

设置服务器免密通联

修改主机名和hosts文件(四台)

四台服务器相同操作

四台服务器相同操作-关闭防火墙 

四台服务器-免密配置-生成密钥

四台服务器-免密配置-复制密钥

 将authorized_keysau文件发送给node2/3/4

测试是否免密登陆其他主机

master操作-主从复制配置

slave1从库操作

slave2操作

manager操作

对各个节点进行检测

检查管理的MySQL复制集群的连接配置参数是否OK 


MHA(Master High Availability)目前在MySQL高可用方面是一个相对成熟的解决方案,它由日本DeNA公司youshimaton(现就职于Facebook公司)开发,是一套优秀的作为MySQL高可用性环境下故障切换和主从提升的高可用软件。在MySQL故障切换过程中,MHA能做到在0~30秒之内自动完成数据库的故障切换操作,并且在进行故障切换的过程中,MHA能在最大程度上保证数据的一致性,以达到真正意义上的高可用。

环境准备

环境准备     CentOS Linux release 7.5.1804 (Core)

设置服务器免密通联

角色    节点    ip    说明

manager    node1    192.168.1.85    管理

master    node2    192.168.1.86    主

slave1     node3    192.168.1.87    从

slave2     node4    192.168.1.88    从

修改主机名和hosts文件(四台)

[root@localhost1 ~]# hostname node1

[root@localhost2 ~]# hostname node2

[root@localhost3 ~]# hostname node3

[root@localhost4~]# hostname node4

四台服务器相同操作

[root@localhost ~]# vim /etc/hosts

192.168.1.85 node1

192.168.1.86 node2

192.168.1.87 node3

192.168.1.88 node4

MHA部署_第1张图片

四台服务器相同操作-关闭防火墙 

[root@node1 ~]# systemctl stop firewalld;setenforce 0    

 [root@node2 ~]# systemctl stop firewalld;setenforce 0    

[root@node3 ~]# systemctl stop firewalld;setenforce 0    

 [root@node4 ~]# systemctl stop firewalld;setenforce 0

四台服务器-免密配置-生成密钥

[root@node1 ~]# ssh-keygen -t rsa

[root@node2 ~]# ssh-keygen -t rsa

[root@node3 ~]# ssh-keygen -t rsa

[root@node4 ~]# ssh-keygen -t rsa

四台服务器-免密配置-复制密钥

[root@node1 ~]# ssh-copy-id -i .ssh/id_rsa.pub root@node1

[root@node2 ~]# ssh-copy-id -i .ssh/id_rsa.pub root@node1

[root@node3 ~]# ssh-copy-id -i .ssh/id_rsa.pub root@node1

[root@node4 ~]# ssh-copy-id -i .ssh/id_rsa.pub root@node1

[root@node1 ~]# cat /root/.ssh/authorized_keysauMHA部署_第2张图片

 将authorized_keysau文件发送给node2/3/4

[root@node1 ~]# scp .ssh/authorized_keys root@node2:.ssh/

[root@node1 ~]# scp .ssh/authorized_keys root@node3:.ssh/

[root@node1 ~]# scp .ssh/authorized_keys root@node4:.ssh/

测试是否免密登陆其他主机

[root@node1 ~]# ssh node2

[root@node1 ~]# ssh node3

[root@node1 ~]# ssh node4

master操作-主从复制配置

[root@node2 ~]# yum -y install epel-release

[root@node2 ~]# yum -y install mariadb mariadb-server

  根据需要获取对应版本的安装包,再进行安装。MHA部署_第3张图片

[root@node2 ~]# rpm -ivh mha4mysql-node-0.56-0.el6.noarch.rpm

root@node2 ~]# vim /etc/my.cnf  #修改配置文件

[mysqld]

server-id = 1

log-bin = master-log

relay-log = relay-log

skip_name_resolve

[root@node2 ~]# systemctl start mariadb  启动mariadb服务

[root@node2 ~]#  mysql进入mariadb

#授权用户给从库使用

MariaDB [(none)]> grant replication slave on *.* to slave@'%' identified by '123';

#授权用户给manager管理master使用

MariaDB [(none)]> grant all on *.* to mha@'%' identified by '123';

MariaDB [(none)]> show master status;

 +-------------------+----------+--------------+------------------+

| File              | Position | Binlog_Do_DB | Binlog_Ignore_DB |

+-------------------+----------+--------------+------------------+

| master-log.000003 |      529 |              |                

 | +-------------------+----------+--------------+------------------+

1 row in set (0.00 sec)  每个master-log值都不一样  按照自己那个值

slave1从库操作

[root@node3 ~]# yum -y install mariadb mariadb-server epel-release

[root@node3 ~]# rpm -ivh mha4mysql-node-0.56-0.el6.noarch.rpm

[root@node3 ~]# vim /etc/my.cnf

[mysqld]

server-id = 2                

relay-log = relay-log        

log-bin = master-log        

read_only = ON              

relay_log_purge = 0          

skip_name_resolve              

log_slave_updates = 1

[root@node2 ~]# systemctl start mariadb  启动mariadb服务

[root@node2 ~]#mysql

MariaDB [(none)]> change master to master_host='主库IP',master_user='slave',master_password='123',master_log_file='master-log.000003',master_log_pos=529;

MariaDB [(none)]> start slave;

MariaDB [(none)]> show slave status \G

授权管理manager

grant all on *.* to mha@'%' identified by '123';

grant all on *.* to slave@'%' identified by '123';

slave2操作

[root@node4 ~]# yum -y install mariadb mariadb-server epel-release

[root@node4 ~]# rpm -ivh mha4mysql-node-0.56-0.el6.noarch.rpm

[root@node3 ~]# vim /etc/my.cnf  配置文件修改

server-id = 3

[mysqld]

              relay-log = relay-log

        log-bin = master-log    

    read_only = ON              

relay_log_purge = 0        

  skip_name_resolve    

          log_slave_updates = 1

[root@node2 ~]# systemctl start mariadb  启动mariadb服务

[root@node2 ~]#mysql

MariaDB [(none)]> change master to master_host='主库IP',master_user='slave',master_password='123',master_log_file='master-log.000003',master_log_pos=529;

MariaDB [(none)]> start slave;

MariaDB [(none)]> show slave status \G

授权管理manager

grant all on *.* to mha@'%' identified by '123';

grant all on *.* to slave@'%' identified by '123';

manager操作

[root@node1 ~]# yum -y install mariadb mariadb-server epel-release

[root@node1 ~]#根据需要获取对应版本的安装包,再进行安装。

 

yum -y install mha4mysql-node-0.56-0.el6.noarch.rpm mha4mysql-manager-0.56-0.el6.noarch.rpm

创建manager配置文件

[root@node1 ~]# mkdir /etc/mha_master

[root@node1 ~]# vim /etc/mha_master/mha.cnf

[server default]

user=mha

password=123

manager_workdir=/etc/mha_master/app1

manager_log=/etc/mha_master/manager.log

remote_workdir=/mydata/mha_master/app1

ssh_user=root

repl_user=slave

repl_password=123

ping_interval=1

[server1] hostname=192.168.174.131

ssh_port=22

candidate_master=1

[server2] hostname=192.168.174.132

ssh_port=22

candidate_master=1

[server3] hostname=192.168.174.133

ssh_port=22

candidate_master=1

:wq保存退出

对各个节点进行检测

[root@node1 ~]# masterha_check_ssh --conf=/etc/mha_master/mha.cnf

MHA部署_第4张图片

检查管理的MySQL复制集群的连接配置参数是否OK 

[root@node1 ~]# masterha_check_repl --conf=/etc/mha_master/mha.cnf

MHA部署_第5张图片

 最后一步出现错误通常是授权问题,在三个主从服务器中进入mysql 从新授权即可。

你可能感兴趣的:(数据库,服务器,mysql)