centos7 配置mysql5.7.25 主从同步MHA架构记录

19 篇文章 0 订阅
15 篇文章 0 订阅

3 台已安装mysql实例的服务器  IP:192.168.255.129     192.168.255.134      192.168.255.135(135作为监控服务器)

1 所有mysql实例必须开启 bin_log 二进制文件  

2 设置三个不同的 server_id    server_id = 1  server_id = 2   server_id = 3   (注:如果你克隆的虚拟机,三台mysql的uuid 手动修改不能一样)

开启三台数据库 gtid_mode = on    enforce_gtid_consistency = on

3 从服务器需要开启 relay_log = mysql-relay-bin   read_only = on (可选:建议开启)

4 创建repl用户并给与replication slave 权限

create user repl@'192.168.255.%' identified by '123456';
grant replication slave on *.* to repl@'192.168.255.%';

5  同步初始化数据库

重启主数据库: service mysqld restart
主数据库执行:mysqldump --single-transaction --master-data=2 --triggers --routines --all-databases -uroot -p > all.sql
把文件拷贝到从服务器:scp all.sql root@192.168.255.130:/root

6 启动复制链路(mha只启动两台从数据库的复制链路,master_host都指向主服务器IP)

导入主数据库sql文件:mysql -u root -p < all.sql
进入从数据库:mysql -u root -p
配置复制链路:change master to master_host='192.168.255.129',
    -> master_user='repl',
    -> master_password='123456',
    -> master_auto_position=1;
启动复制链路:start slave;

 show slave status \G;  查看是否启动成功,然后主数据库执行insert sql语句测试从数据库是否数据同步;

7 配置三台主机的ssh免认证登陆

方法一(没有方法二简单,方法二在下面)

生成密钥

ssh-keygen -t rsa -P ''

把公钥scp到从服务器 如果root目录下没有.ssh文件夹  执行:ssh localhost 生成  

cd /root/.ssh/
cp id_rsa.pub authorized_keys
scp authorized_keys root@192.168.255.130:/root/.ssh/
scp authorized_keys root@192.168.255.131:/root/.ssh/

然后生成从服务器的公钥和私钥 

授权:chmod 600 authorized_keys
ssh-keygen -t rsa -P ''

然后把从服务器的公钥内容复制到authorized_keys文件

第三台从服务和第二太服务器同样操作,然后把 公钥追加到 authorized_keys 文件,最后同步到三台服务器的 /root/.ssh/ 目录下

如下截图验证ssh免密登陆成功

方法二

ssh-keygen  (一路回车)

ssh-copy-id -i ~/.ssh/id_rsa -p 22 root@192.168.255.134

ssh-copy-id -i ~/.ssh/id_rsa -p 22 root@192.168.255.135

其它两太服务同理

8 配置MHA架构

三台服务器都必须安装node软件包(安装前先配置yum源,安装node软件包所需要的依赖)

配置yum源

wget http://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm

rpm -ivh epel-release-latest-7.noarch.rpm

安装依赖包

yum install -y perl-DBD-MySQL ncftp perl-DBI.x86_64

安装node软件包

wget https://qiniu.wsfnk.com/mha4mysql-node-0.58-0.el7.centos.noarch.rpm

rpm -ivh mha4mysql-node-0.58-0.el7.centos.noarch.rpm

监控服务器(除了安装node软件包还得安装manger软件包)

安装manger软件包所需依赖包

yum install -y perl-DBD-MySQL perl-Config-Tiny perl-Log-Dispatch perl-Parallel-ForkManager

安装manger软件包

wget https://qiniu.wsfnk.com/mha4mysql-manager-0.58-0.el7.centos.noarch.rpm

rpm -ivh mha4mysql-manager-0.58-0.el7.centos.noarch.rpm

如果有这个错误:软件包:perl-Log-Dispatch-2.27-1.el6.noarch (epel)   需要:perl(:MODULE_COMPAT_5.10.1)   

是yum源配置错误,我就是centos7却配置的6的yum源导致的错误,我直接初始化三台服务器重新装了一遍

安装完成

创建监控服务器创建mha配置文件存放目录     mkdir -p /etc/mha

创建mha二进制文件存放目录      mkdir -p /home/mysql_mha   

主节点数据库创建mha用户

grant all privileges on *.* to mha@'192.168.255.%' identified by '123456';

vi /etc/mha/mysql_mha.cnf   (编辑mha配置文件) 

[server default]
user=mha
password=123456
manager_workdir=/home/mysql_mha
manager_log=/home/mysql_mha/manager.log
remote_workdir=/home/mysql_mha
ssh_user=root
repl_user=repl
repl_password=123456
ping_interval=1
master_binlog_dir=/home/mysql/data
master_ip_failover_script=/usr/bin/master_ip_failover
secondary_check_script=/usr/bin/masterha_secondary_check -s 192.168.255.129 -s 192.168.255.130 -s 192.168.255.131
[server1]
hostname=192.168.255.129
candidate_master=1
[server2]
hostname=192.168.255.130
candidate_master=1
[server3]
hostname=192.168.255.131
no_master=1

9 检测MHA架构的 ssh 免认证登陆 和 repl 配置是否正常 (这一步错误最多)

检测ssh免认证登陆

masterha_check_ssh --conf=/etc/mha/mysql_mha.cnf

报错:/usr/share/perl5/vendor_perl/MHA/SSHCheck.pm, ln63

解决方法

两台服务都执行

cd ~/.ssh

cat id_rsa.pub >> authorized_keys 

检测repl  

masterha_check_repl --conf=/etc/mha/mysql_mha.cnf

下面截图错误卡了一下午,百度都说是bin-log没有开启,忽略了第一个箭头  db2 dead servers  状态,说明监控服务链接不上db2,我是开启得防火墙导致得。(我开放了3306端口,可能是没有重启防火墙,不关闭防火墙开启3306端口也可以)

 

启动:masterha_manager --conf=/etc/mha/mysql_mha.cnf

后台启动:nohup masterha_manager --conf=/etc/mha/mysql_mha.cnf &

查看是否启动成功

ps -ef | grep masterha_manage

写IP是在  master_ip_failover 文件配置  注意 还有网络接口

主服务器配置写IP

启动成功后需要手动开启主服务器的 写IP     eno16777736 是网络接口 

ifconfig eno16777736:1 192.168.255.90/24

查看: ip addr

测试 主服务 挂掉 写IP会不会偏移到134 

service mysqld stop;

135 复制链路成功迁移到 134,134成为主DB

写IP也成功迁移到  134  

 

不迁移的原因排查

查看 /home/mysql_mha/manager.log 文件 这里有详细的 迁移日志。仔细看,会发现问题,一一解决。

不是专业运维,文章写的也不精致,主要给自己以后配置做参考。

 

 

 

 

 

 

 

 

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值