时间:2021-07-01 10:21:17 帮助过:6人阅读
https://github.com/yoshinorim/mha4mysql-manager/wiki/Downloads
[root@localhost ~]# yum install mha4mysql-node-0.56-0.el6.noarch.rpm -y #主从节点需要安装mha的node包 [root@localhost ~]# vim /etc/my.cnf [mysqld] server-id=17 log-bin skip-name-resolve #防止mha连接时,把IP反向解析成名字 [root@localhost ~]# systemctl restart mariadb [root@localhost ~]# mysql MariaDB [(none)]> grant replication slave on *.* to repluser@‘192.168.38.%‘ identified by ‘centos‘; #创建复制用的账号 MariaDB [(none)]> grant all on *.* to mhauser@‘192.168.38.%‘ identified by ‘centos‘; #创建mha用于管理的账号,提升从为主;主节点创建的账号会同步到从节点
[root@slave1 ~]# yum install mha4mysql-node-0.56-0.el6.noarch.rpm -y [root@slave1 ~]# vim /etc/my.cnf [mysqld] server-id=27 log-bin #从节点会提升为主节点,二进制日志必须开启 read-only #当从节点提升为主节点,mha会把read-only属性在mysql中关闭 relay-log-purge=0 #不清空中继日志,mha会把统计日志同步到其他slave上 skip-name-resolve [root@slave1 ~]# systemctl restart mariadb [root@slave1 ~]# mysql MariaDB [(none)]> CHANGE MASTER TO #指定主节点信息 -> MASTER_HOST=‘192.168.38.37‘, -> MASTER_USER=‘repluser‘, -> MASTER_PASSWORD=‘centos‘, -> MASTER_PORT=3306, -> MASTER_LOG_FILE=‘mariadb-bin.000001‘, -> MASTER_LOG_POS=245; MariaDB [(none)]> start slave;
[root@slave2 ~]# yum install mha*.rpm -y [root@slave2 ~]# vim /etc/my.cnf [mysqld] server-id=37 log-bin read-only relay-log-purge=0 skip-name-resolve [root@slave2 ~]# systemctl restart mariadb [root@slave2 ~]# mysql MariaDB [(none)]> CHANGE MASTER TO -> MASTER_HOST=‘192.168.38.37‘, -> MASTER_USER=‘repluser‘, -> MASTER_PASSWORD=‘centos‘, -> MASTER_PORT=3306, -> MASTER_LOG_FILE=‘mariadb-bin.000001‘, -> MASTER_LOG_POS=245; MariaDB [(none)]> start slave;
mha4mysql-manager-0.56-0.el6.noarch.rpm mha4mysql-node-0.56-0.el6.noarch.rpm 安装mha4mysql-manager包时,需要开启epel源,manager有的依赖包需要从epel源上下载
[root@mha-manager ~]# ssh-keygen #生成公钥私钥对,mha是基于ssh协议,连接节点进行相关操作的,所以需要基于Key验证 [root@mha-manager ~]# cd .ssh/ [root@mha-manager .ssh]# ssh-copy-id 127.0.0.1 #把公钥发送到本机的.ssh/authorized_keys文件中 [root@mha-manager ~]# scp -rp .ssh 192.168.38.37:/root/ #把本机的.ssh目录保留属性发送到远程主机的root目录下 [root@mha-manager ~] #scp -rp .ssh 192.168.38.47:/root/ [root@mha-manager ~] #scp -rp .ssh 192.168.38.57:/root/ #mha-manager可以基于key验证连接三个节点,并且4台机器之间可以相互连接 [root@mha-manager ~]# yum install mha*.rpm -y #安装mha-manager和node包 [root@mha-manager ~]# vim /etc/mha.conf #编辑mha配置文件 [server default] user=mhauser #指定mysql创建的管理账号,用于提生主节点 password=centos manager_workdir=/data/mastermha/app1/ #存放manager生成的文件 manager_log=/data/mastermha/app1/manager.log #指定日志目录,这些目录会自动生成 remote_workdir=/data/mastermha/app1/ #远程节点生成的数据存放目录 ssh_user=root #ssh连接主节点的用户 repl_user=repluser #指定mysql复制用户 repl_password=centos ping_interval=1 #1秒钟发送一次监控报文 [server1] hostname=192.168.38.37 #mha会自动识别主从 [server2] hostname=192.168.38.47 candidate_master=1 #优先提升为主节点;如果不指定,系统会自动根据同步进度,自行提升主节点 [server3] hostname=192.168.38.57 #一个高可用集群用一个配置文件 [root@mha-manager ~]# masterha_check_ssh --conf=/etc/mha.conf #检查mha的ssh连接,读取配置文件 [root@mha-manager ~]# masterha_check_repl --conf=/etc/mha.conf #检测配置文件中列出的服务器列表,识别主从及检测复制等信息 [root@mha-manager ~]# masterha_manager --conf=/etc/mha.conf #执行mha,mha默认是前端执行,不能关闭终端窗口,工作中需要放到后端;并且mha检查到一次故障,提升完主节点之后,就会退出mha进程
MHA把从节点提升为主节点,用管理账号连接从节点,删除里面的主从复制信息,关闭slave线程,关闭read_only等属性; MariaDB [(none)]> select @@read_only; #从节点提升为主节点 +-------------+ | @@read_only | +-------------+ | 0 | +-------------+ MariaDB [(none)]> show slave status\G Empty set (0.00 sec)
MySQL高可用
标签:mysql复制 systemctl 相关 nlog 集群 git 检查 数据 date