mysql5.7 keepalived_基于MySQL 5.7多源复制及Keepalived搭建三节点高可用架构
导读
本内容摘自知数堂第35期公开课《MySQL 5.7 高可用新玩法》
本次公开课视频请访问http://pan.baidu.com/s/1mia6MZu
知数堂公开课相关视频请访问 https://ke.qq.com/course/172600
课中涉及到的脚本及配置文件请点击文末 “阅读原文”
基本环境准备
使用Centos 6.X 64位系统 MySQL 使用 MySQL-5.7.17-x86_64 版本,去官方下载mysql-5.7.17-linux-glibc2.5-x86_64.tar.gz 版本
机器名
操作系统
Ip
node1
centos-6.8
192.168.11.100
node2
centos-6.8
192.168.11.101
node3
centos-6.8
192.168.11.102
三节点集群设置VIP为 192.168.11.110
一般我们建议关闭iptables
[wubx@zhishuedu.com ~]# chkconfig —del iptables
[wubx@zhishuedu.com ~]# /etc/init.d/iptables stop
并且关闭 selinux
[wubx@zhishuedu.com ~]# setenforce 0
并且将配置文件 /etc/sysconfig/selinux 中的下面这行
SELINUX=permissive
更改为
SELINUX=disabled
下载MySQL
[wubx@zhishuedu.com ~]# mkdir /data/Soft
[wubx@zhishuedu.com ~]# cd /data/Soft
[wubx@zhishuedu.com ~]# wget -c https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.17-linux-glibc2.5-x86\_64.tar.gz
MySQL部署约定
二进制文件放置到 /opt/mysql/ 下面对应的目录。数据文件全部放置到 /data/mysql/ 下面对应的目录。原始二进制文件下载到 /data/Soft/ 目录下。
MySQL基本安装
以下安装步骤需要在node1, node2, node3上分别执行。
[wubx@zhishuedu.com ~]# mkdir /opt/mysql
[wubx@zhishuedu.com ~]# cd /opt/mysql
[wubx@zhishuedu.com ~]# tar zxvf /data/Soft/mysql-5.7.17-linux-glibc2.5-x86_64.tar.gz
[wubx@zhishuedu.com ~]# ln -s /opt/mysql/mysql-5.7.17-linux-glibc2.5-x86_64 /usr/local/mysql
[wubx@zhishuedu.com ~]# mkdir /data/mysql/mysql3309/{data,logs,tmp} -p
[wubx@zhishuedu.com ~]# groupadd mysql
[wubx@zhishuedu.com ~]# useradd -g mysql -s /sbin/nologin -d /usr/local/mysql -M mysql
[wubx@zhishuedu.com ~]# chown -R mysql:mysql /data/mysql/
[wubx@zhishuedu.com ~]# chown -R mysql:mysql /usr/local/mysql
[wubx@zhishuedu.com ~]# cd /usr/local/mysql/
[wubx@zhishuedu.com ~]# ./bin/mysqld —defaults-file=/data/mysql/mysql3309/my3309.cnf —initialize
[wubx@zhishuedu.com ~]# cat /data/mysql/mysql3309/data/error.log |grep password
[wubx@zhishuedu.com ~]# /usr/local/mysql/bin/mysqld —defaults-file=/data/mysql/mysql3309/my3309.cnf &
[wubx@zhishuedu.com ~]# echo “export PATH=$PATH:/usr/local/mysql/bin” >>/etc/profile
[wubx@zhishuedu.com ~]# source /etc/profile
[wubx@zhishuedu.com ~]# mysql -S /tmp/mysql3309.sock -uroot -pXX
mysql> grant replication slave,replication client on . to ‘repl’@’%’ identified by ‘repl4slave’;
mysql> grant all privilegs on test.* to ‘wubx’@’%’ identified by ‘wubx’;
mysql> reset master;
每个节点按上面进行,遇到初始化和启动故障请认真阅读 error log 日志文件。
搭建主从结构
node1上设置master
mysql> change master to master_host=’192.168.11.101’,master_port=3309, master_user=’repl’, master_password=’repl4slave’, master_auto_position=1 for channel ‘192_168_11_101_3309’;
mysql> change master to master_host=’192.168.11.102’,master_port=3309, master_user=’repl’, master_password=’repl4slave’, master_auto_position=1 for channel ‘192_168_11_102_3309’;
#确认同步OK
mysql> start slave;
mysql> show slave status\G
node2上设置master
mysql> change master to master_host=’192.168.11.100’,master_port=3309, master_user=’repl’, master_password=’repl4slave’, master_auto_position=1 for channel ‘192_168_11_100_3309’;
mysql> change master to master_host=’192.168.11.102’,master_port=3309,master_user=’repl’, master_password=’repl4slave’,master_auto_position=1 for channel ‘192_168_11_102_3309’;
#确认同步OK
mysql> start slave;
mysql> show slave status\G
node3上设置master
mysql> change master to master_host=’192.168.11.100’,master_port=3309, master_user=’repl’, master_password=’repl4slave’, master_auto_position=1 for channel ‘192_168_11_100_3309’;
mysql> change master to master_host=’192.168.11.101’,master_port=3309, master_user=’repl’, master_password=’repl4slave’,master_auto_position=1 for channel ‘192_168_11_101_3309’;
#确认同步OK
mysql> start slave;
mysql> show slave status\G
安装keepalived
node1, node2, node3 上分别安装keepalived。
yum install keepalivled
安装python依赖模块。
yum install MySQL-python.x86_64 yum install python2-filelock.noarch
keepalived配置 配置文件放置在 /etc/keepalived/keepalived.conf,内容如下
vrrp_script vs_mysql_82 {
script "/etc/keepalived/checkMySQL.py -h 127.0.0.1 -P 3309"
interval 15
}
vrrp_instance VI_82 {
state backup
nopreempt
interface eth1
virtual_router_id 82
priority 100
advert_int 5
authentication {
auth_type PASS
auth_pass 1111
}
track_script {
vs_mysql_82
}
notify /etc/keepalived/notify.py
virtual_ipaddress {
192.168.11.110
}
}
在node1, node2, node3分别执行下面命令,启动keepalived。
/etc/init.d/keepalived start
观察每个系统上的 /var/log/messages 中是否有报错等内容。
在client端机器上测试验证当前连接到哪个实例上。
mysql -h 192.168.11.110 -P 3309 -uwubx -pwubx -e “select @@hostname”
可以尝试关闭实例,自行触发keepalived高可用切换,完成一次高可用自动切换。
扫码关注 知数堂 公众号,第一时间关注干货文章
点击下方“阅读原文”,获取三节点高可用切换脚本。
mysql5.7 keepalived_基于MySQL 5.7多源复制及Keepalived搭建三节点高可用架构相关推荐
- mysql5.7 高可用_基于MySQL 5.7多源复制及Keepalived搭建三节点高可用架构
导读 基本环境准备 使用Centos 6.X 64位系统 MySQL 使用 MySQL-5.7.17-x86_64 版本,去官方下载mysql-5.7.17-linux-glibc2.5-x86_64 ...
- MySQL 5.6通过Keepalived+互为主从实现高可用架构
本文将介绍两台Mysql如何实现高可用架构.通常我们会配置主从同步,但这样若主的Mysql挂掉,还需要手动干预,例如把指向主库的IP地址修改为指向从库的IP,为了实现自动切换到从数据库,我们可以使用K ...
- 在Linux基于Keepalived搭建LVS实现高可用负载均衡
文章目录 前言 搭建步骤 配置真实服务器(RS) 配置负载均衡服务器(DS主) 配置负载均衡服务器(DS备) 测试 查看DS主备配置 访问VIP验证负载均衡 查看虚拟路由冗余协议(VRRP)数据包 验 ...
- MySQL 数据库之 MMM 高可用架构构建
文章目录 一.MMM 概述 1. 什么是 MMM 2. 应用场景 3. MMM 特点 4. 关于 MMM 高可用架构的说明 5. 用户及授权 二.案例环境 1. 服务器配置 2. 服务器环境 3. 修 ...
- mysql keepalived主从_mysql高可用架构之(一)基于自身主从复制&keepalived实现
系统环境及架构 #主机名 系统版本 mysql版本 ip地址 mysqlMaster centos7.4 mysql5.7 192.168.1.42 mysqlSlave centos7.4 mysq ...
- MySQL(11)数据库实现高可用架构之MMM
文章目录 一.MySQL MMM介绍 1.1 什么是 MMM? 1.2 MMM的组成 2.1 MySQL M搭建的步骤(理论) 2.1.1 搭建步骤 2.1.2故障测试 2.2 MySQL M搭建具体 ...
- 高可用架构-- MySQL主从复制的配置
环境 操作系统:CentOS-6.6-x86_64-bin-DVD1.iso MySQL版本:mysql-5.6.26.tar.gz 主节点IP:192.168.1.205 主机名:edu-mysql ...
- 单表60亿记录等大数据场景的MySQL优化和运维之道 | 高可用架构
015-08-09 杨尚刚 高可用架构 此文是根据杨尚刚在[QCON高可用架构群]中,针对MySQL在单表海量记录等场景下,业界广泛关注的MySQL问题的经验分享整理而成,转发请注明出处. 杨尚刚,美 ...
- 《MySQL性能优化和高可用架构实践》阅读总结
文章目录 介绍 第1章 MySQL架构介绍 1.1 MySQL简介 1.2 MySQL主流的分支版本 1.3 MySQL存储引擎 1.4 MySQL逻辑架构 1.5 MySQL物理文件体系结构 第2章 ...
- Mysql数据库MMM实现高可用架构
文章目录 一,MMM介绍 二.MMM搭建 一,MMM介绍 MMM(Master-Master replication manager for MvSQL,MySQL主主复制管理器) 是一套支持双主故障 ...
最新文章
- ccf 高速公路(顺便当tarjan模板)
- [WIKIOI1298]凸包周长[裸凸包]
- Nhibernate 3.0 cookbook学习笔记 配置与架构
- 4.7、Bootstrap V4自学之路------组件---广告屏
- 图像处理 --- 二、数字图像处理基础
- ubuntu 安装java_Hadoop3.1.3安装教程_单机/伪分布式配置
- 【机器学习】监督学习--KNN(最近邻)算法
- unity android 版本,Unity2019与Android混合开发
- 网站做好后,不想买服务器可以用自己的电脑当服务器么?
- android multipartentity 怎么上传参数,android-通过MultipartEntityBuilder通过HTTP表单上传文件,并显示进度b...
- 孪生网络图像相似度_图像相似度比对
- 逐点比较法直线插补MATLAB(四个象限合并)
- Hadoop Streaming和Pipes会意
- 实用插件(七)视频播放插件——ckplayer
- 百度长期不收录网站怎么办?9个方法解决不收录
- day8--socket回顾
- crond和crontab详解
- 酵素果冻真的能减肥吗?
- c语言二级指针与二维数组
- 计算机如何快速返回桌面,打游戏怎么快速返回桌面
热门文章
- java tostring 库_JavaBean toString() – 将bean对象打印成字符串
- AudioClip 参数解析
- 新手学电脑入门教程_3Dmax难学嘛?3Dmax到底好不好学
- 什么是webpack? ----(webpack入门)
- php pdo 抛出异常模式,php实现的PDO异常处理操作分析
- vue-cli webpack配置注释
- [233]树莓派裸机代码bootloader学习总结
- 经典算法题每日演练——第二十题 三元组
- Itext 中的文本信息绝对定位
- .NET MVC4 本地正常 部署 服务器错误