mysql数据库之MHA安装部署

liunx

CentOS7

准备环境: 四台服务器 CentOS7 mariadb

192.168.42.140 manager 管理节点
192.168.42.141 master 主mysql
192.168.42.142 slave1 从mysql
192.168.42.143 slave2 从mysql

1.首先把防火墙在全部服务器上全部关掉,把4台服务器时间都同步了。

setenforce 0
systemctl stop firewalld
同步时间:
sudo cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
init 6

2.安装mariadb数据库,并开启数据库

yum -y install mariadb-server mariadb
systemctl start mariadb

3.在四台服务器都配置epel源

wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
mv epel-7.repo /etc/yum.repos.d/

4.修改主机名

hostnamectl set-hostname manager
su -

5.建立ssh无交互登录环境

ssh-keygen
ssh-copy-id root@192.168.42.140
ssh-copy-id root@192.168.42.141
ssh-copy-id root@192.168.42.142
ssh-copy-id root@192.168.42.143

四台服务器都一样的配置

配置hosts环境

vim /etc/hosts

192.168.42.140 manager
192.168.42.141 master
192.168.42.142 slave1
192.168.42.143 slave2

四台服务器都一样的配置

mysql
show variables like ‘%have_dynamic%’;
INSTALL PLUGIN rpl_semi_sync_master SONAME ‘semisync_master.so’;
INSTALL PLUGIN rpl_semi_sync_slave SONAME ‘semisync_slave.so’;
show plugins;
show variables like ‘%rpl_semi_sync%’;
show status like ‘%rpl_semi_sync%’;

192.168.42.141:在主上面配置

修改my.cnf文件,配置主从同步
vim /etc/my.cnf
server-id = 1
log-bin = mysql-bin
binlog_format = mixed
log-bin-index = mysql-bin.index
rpl_semi_sync_master_enabled = 1
rpl_semi_sync_master_timeout = 1000
rpl_semi_sync_slave_enabled = 1
relay_log_purge = 0
relay-log = relay-bin
relay-log-index = slave-relay-bin.index

重新开启mariadb

systemctl restart mariadb

在manager上面配置

修改my.cnf文件,配置主从同步

vim /etc/my.cnf
server-id = 2
log-bin = mysql-bin
binlog_format = mixed
log-bin-index = mysql-bin.index
rpl_semi_sync_master_enabled = 1
rpl_semi_sync_master_timeout = 1000
rpl_semi_sync_slave_enabled = 1
relay_log_purge = 0
relay-log = relay-bin
relay-log-index = slave-relay-bin.index

重新开启mariadb

systemctl restart mariadb

在slave1和slave2上面配置

修改my.cnf文件,配置主从同步

vim /etc/my.cnf
server-id = 3
log-bin = mysql-bin
relay-log = relay-bin
relay-log-index = slave-relay-bin.index
read_only = 1
rpl_semi_sync_slave_enabled = 1
rpl_semi_sync_master_enabled = 1
rpl_semi_sync_master_timeout = 10000

server-id = 4
log-bin = mysql-bin
relay-log = relay-bin
relay-log-index = slave-relay-bin.index
read_only = 1
rpl_semi_sync_slave_enabled = 1
rpl_semi_sync_master_enabled = 1
rpl_semi_sync_master_timeout = 10000

重新开启mariadb

systemctl restart mariadb

在manager和主上面配置

mysql
show variables like ‘%rpl_semi_sync%’;
show status like ‘%rpl_semi_sync%’;
grant replication slave on . to mharep@‘192.168.42.%’ identified by ‘123456’;
grant all privileges on . to manager@‘192.168.42.%’ identified by ‘123456’;
grant all privileges on . to manager@‘master’ identified by ‘123456’;
grant all privileges on . to manager@‘slave1’ identified by ‘123456’;
grant all privileges on . to manager@‘slave2’ identified by ‘123456’;
flush privileges;
use mysql
select host,user,password from user ;

在slave1和slave2上面配置

mysql
show variables like ‘%rpl_semi_sync%’;
show status like ‘%rpl_semi_sync%’;
grant all privileges on . to manager@‘192.168.42.%’ identified by ‘123456’;
grant all privileges on . to manager@‘master’ identified by ‘123456’;
grant all privileges on . to manager@‘slave1’ identified by ‘123456’;
grant all privileges on . to manager@‘slave2’ identified by ‘123456’;
flush privileges;
use mysql
select host,user,password from user ;

在master上面配置

mysql
show master status;

在manager和slave1和slave2上面配置

change master to master_host=‘192.168.42.141’,master_port=3306,master_user=‘mharep’,master_password=‘123456’,master_log_file=‘mysql-bin.000001’,master_log_pos=1059;
start slave;
show slave status\G

四台服务器都一样的配置

yum -y install perl-DBD-MySQL perl-Config-Tiny perl-Log-Dispatch perl-ParallelForkManager perl-Config-IniFiles ncftp perl-Params-Validate perl-CPAN perl-TestMock-LWP.noarch perl-LWP-Authen-Negotiate.noarch perl-devel perl-ExtUtils-CBuilder perl-ExtUtils-MakeMaker

yum install perl-DBD-MySQL -y

在manager上面配置

tar zxf mha4mysql-node-0.57.tar.gz
cd mha4mysql-node-0.57/
perl Makefile.PL
make && make install
tar zxf mha4mysql-manager-0.57.tar.gz
cd mha4mysql-manager-0.57/
perl Makefile.PL
make && make install

在master和slave1和slave2上面配置

tar zxf mha4mysql-node-0.57.tar.gz
cd mha4mysql-node-0.57/
perl Makefile.PL
make && make install

在manager上面配置

mkdir /etc/masterha
mkdir -p /masterha/app1
mkdir /scripts
cd mha4mysql-manager-0.57/
cp samples/conf/* /etc/masterha/
cp samples/scripts/* /scripts/

在manager上面配置

vim /etc/masterha/app1.cnf
[server default]
manager_workdir=/masterha/app1
manager_log=/masterha/app1/manager.log
user=manager
password=123456
ssh_user=root
repl_user=mharep
repl_password=123456
ping_interval=1

[server1]
hostname=192.168.42.141
port=3306
candidate_master=1

[server2]
hostname=192.168.42.140
port=3306
candidate_master=1

[server3]
hostname=192.168.42.142
port=3306
no_master=1

[server4]
hostname=192.168.42.143
port=3306
no_master=1

192.168.42.140:在manager上面查看

masterha_check_repl -global_conf=/etc/masterha/masterha_default.cnf --conf=/etc/masterha/app1.cnf

ln -s /usr/local/mysql/bin/* /usr/local/bin/

masterha_check_ssh --global_conf=/etc/masterha/masterha_default.cnf --conf=/etc/masterha/app1.cnf

masterha_check_repl -conf=/etc/masterha/app1.cnf 在manager上测试

nohup masterha_manager --conf=/etc/masterha/app1.cnf &>/tmp/mha_manager.log &

masterha_check_status --conf=/etc/masterha/app1.cnf 检查状态

cat /masterha/app1/manager.log 查看

masterha_stop --conf=/etc/masterha/app1.cnf 关闭

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值