Mysql半双工主从复制

MHA的搭建流程:https://blog.csdn.net/qq_35349982/article/details/108578414

用的虚拟机。以下是IP列表

  • master-1 192.168.182.128

  • slave-1 192.168.182.132

  • slave-2 192.168.182.130

  • mha-1 192.168.182.133

关闭防火墙

1.机器都要做关闭防火墙:

systemctl stop firewalld.service

systemctl disable firewalld.service

systemctl status firewalld.service

centos虚拟机安装mysql

这里采用的是rpm-bundle.tar安装方式。只要安装上去就行,其他方式也行,不建议使用docker

cd /usr/local/src
tar -xvf mysql-5.7.28-1.el7.x86_64.rpm-bundle.tar

## centos自带 mariadb,查询并删除
rpm -qa|grep mariadb
rpm -e mariadb-libs-5.5.41-2.el7_0.x86_64 --nodeps

## i表示安装,v表示显示安装过程,h表示显示进度
## 安装common包
rpm -ivh mysql-community-common-5.7.28-1.el7.x86_64.rpm
## 安装lib包
rpm -ivh mysql-community-libs-5.7.28-1.el7.x86_64.rpm
## 安装libs-compat包
rpm -ivh mysql-community-libs-compat-5.7.28-1.el7.x86_64.rpm
## 安装client包
rpm -ivh mysql-community-client-5.7.28-1.el7.x86_64.rpm
## 安装server包
rpm -ivh mysql-community-server-5.7.28-1.el7.x86_64.rpm
## 安装devel包
rpm -ivh mysql-community-devel-5.7.28-1.el7.x86_64.rpm
## 初始化mysql
mysqld --initialize --user=mysql
## 查询密码
cat /var/log/mysqld.log
## 获取临时密码
ZTl%tXzk#57
## 开机自启
systemctl start mysqld.service
## 查询状态是否启动
systemctl status mysqld.service
##登录mysql
mysql -uroot -p

## 进入mysql 设置 密码
set password=password('root');
## mysql授权外部链接
GRANT REPLICATION SLAVE ON *.*  TO  'root'@'%'  identified by 'root';
GRANT all privileges ON *.*  TO  'root'@'%'  identified by 'root';
##刷新
flush privileges;
## 退出 关闭防火墙
exit#mysql内执行
systemctl stop iptables;
systemctl stop firewalld;
## 禁用防火墙
systemctl disable firewalld.service

在这里插入图片描述

主从复制安装

Master主机

  1. 先进入mysql 安装插件
install plugin rpl_semi_sync_master soname 'semisync_master.so';
  1. 配置etc下的my.cnf(my.ini)文件
vim /etc/my.cnf
#开启binlog日期
log_bin=mysql-bin 
server-id=1
## 同步日志
sync-binlog=1 
## 忽略一些库
binlog-ignore-db=performance_schema
binlog-ignore-db=informance_schema
binlog-ignore-db=sys
#半同步复制的参数
rpl_semi_sync_master_enabled=1
rpl_semi_sync_master_timeout=1000
  1. 重启mysql服务
service mysqld restart
  1. 登录mysql
mysql -uroot -proot
#查询状态
show master status;

在这里插入图片描述

Slave主机

  1. 进入mysql 安装salve插件

    install plugin rpl_semi_sync_slave soname 'semisync_slave.so';
    
  2. 修改slave主机的配置文件my.cnf

#注意server-id不能相同
server-id=2
relay_log=mysql-bin
#mha的时候要用
log-bin=slave1
#指定不同步的数据库
binlog-ignore-db=performance_schema
binlog-ignore-db=information_schema
binlog-ignore-db=sys
#半同步复制的参数,如果不采用半同步复制可跳过
rpl_semi_sync_slave_enabled=1
relay_log_info_repository=table;

  1. 刷新配置
service mysqld restart
  1. 进入mysql 查询从库的半同步复制状态
SHOW VARIABLES LIKE '%semi%';

如果为on则代表以及开启半同步复制的方式(如果不采用半同步复制可跳过)
在这里插入图片描述
5. 指定master

## 从库中如果有值,说明之前做过
show master status;
##将slave重置一下
reset slave;
##先停步slave服务线程,这个是很重要的,
stop slave; 
##指定mater
## master_log_file就是主机状态的File值
## master_log_pos就是主机状态的position值
change master to master_host='192.168.182.128',master_port=3306,master_user='root',master_password='root',master_log_file='mysql-bin.000003',master_log_pos=154;

#开启slave同步
start slave;

多个slave只需要重复进行上面步骤,需要注意my.cnf中的server-id需要修改保证确定唯一。

问题

1.Job for mysqld.service failed. See 'systemctl status mysql服务启动失败

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值