导读

本内容摘自知数堂第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搭建三节点高可用架构相关推荐

  1. 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 ...

  2. MySQL 5.6通过Keepalived+互为主从实现高可用架构

    本文将介绍两台Mysql如何实现高可用架构.通常我们会配置主从同步,但这样若主的Mysql挂掉,还需要手动干预,例如把指向主库的IP地址修改为指向从库的IP,为了实现自动切换到从数据库,我们可以使用K ...

  3. 在Linux基于Keepalived搭建LVS实现高可用负载均衡

    文章目录 前言 搭建步骤 配置真实服务器(RS) 配置负载均衡服务器(DS主) 配置负载均衡服务器(DS备) 测试 查看DS主备配置 访问VIP验证负载均衡 查看虚拟路由冗余协议(VRRP)数据包 验 ...

  4. MySQL 数据库之 MMM 高可用架构构建

    文章目录 一.MMM 概述 1. 什么是 MMM 2. 应用场景 3. MMM 特点 4. 关于 MMM 高可用架构的说明 5. 用户及授权 二.案例环境 1. 服务器配置 2. 服务器环境 3. 修 ...

  5. mysql keepalived主从_mysql高可用架构之(一)基于自身主从复制&keepalived实现

    系统环境及架构 #主机名 系统版本 mysql版本 ip地址 mysqlMaster centos7.4 mysql5.7 192.168.1.42 mysqlSlave centos7.4 mysq ...

  6. 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搭建具体 ...

  7. 高可用架构-- MySQL主从复制的配置

    环境 操作系统:CentOS-6.6-x86_64-bin-DVD1.iso MySQL版本:mysql-5.6.26.tar.gz 主节点IP:192.168.1.205 主机名:edu-mysql ...

  8. 单表60亿记录等大数据场景的MySQL优化和运维之道 | 高可用架构

    015-08-09 杨尚刚 高可用架构 此文是根据杨尚刚在[QCON高可用架构群]中,针对MySQL在单表海量记录等场景下,业界广泛关注的MySQL问题的经验分享整理而成,转发请注明出处. 杨尚刚,美 ...

  9. 《MySQL性能优化和高可用架构实践》阅读总结

    文章目录 介绍 第1章 MySQL架构介绍 1.1 MySQL简介 1.2 MySQL主流的分支版本 1.3 MySQL存储引擎 1.4 MySQL逻辑架构 1.5 MySQL物理文件体系结构 第2章 ...

  10. Mysql数据库MMM实现高可用架构

    文章目录 一,MMM介绍 二.MMM搭建 一,MMM介绍 MMM(Master-Master replication manager for MvSQL,MySQL主主复制管理器) 是一套支持双主故障 ...

最新文章

  1. ccf 高速公路(顺便当tarjan模板)
  2. [WIKIOI1298]凸包周长[裸凸包]
  3. Nhibernate 3.0 cookbook学习笔记 配置与架构
  4. 4.7、Bootstrap V4自学之路------组件---广告屏
  5. 图像处理 --- 二、数字图像处理基础
  6. ubuntu 安装java_Hadoop3.1.3安装教程_单机/伪分布式配置
  7. 【机器学习】监督学习--KNN(最近邻)算法
  8. unity android 版本,Unity2019与Android混合开发
  9. 网站做好后,不想买服务器可以用自己的电脑当服务器么?
  10. android multipartentity 怎么上传参数,android-通过MultipartEntityBuilder通过HTTP表单上传文件,并显示进度b...
  11. 孪生网络图像相似度_图像相似度比对
  12. 逐点比较法直线插补MATLAB(四个象限合并)
  13. Hadoop Streaming和Pipes会意
  14. 实用插件(七)视频播放插件——ckplayer
  15. 百度长期不收录网站怎么办?9个方法解决不收录
  16. day8--socket回顾
  17. crond和crontab详解
  18. 酵素果冻真的能减肥吗?
  19. c语言二级指针与二维数组
  20. 计算机如何快速返回桌面,打游戏怎么快速返回桌面

热门文章

  1. java tostring 库_JavaBean toString() – 将bean对象打印成字符串
  2. AudioClip 参数解析
  3. 新手学电脑入门教程_3Dmax难学嘛?3Dmax到底好不好学
  4. 什么是webpack? ----(webpack入门)
  5. php pdo 抛出异常模式,php实现的PDO异常处理操作分析
  6. vue-cli webpack配置注释
  7. [233]树莓派裸机代码bootloader学习总结
  8. 经典算法题每日演练——第二十题 三元组
  9. Itext 中的文本信息绝对定位
  10. .NET MVC4 本地正常 部署 服务器错误