基于MySQL 5.7多源复制+Keepalived搭建高可用

来源:互联网 发布:淘宝客服平台语言技巧 编辑:程序博客网 时间:2024/05/06 14:33

作者:吴炳锡 来源:http://wubx.net/ 联系方式: wubingxi#163.com 转载请注明作/译者和出处,并且不能用于商业用途,违者必究.

说明

本内容来源于 知数堂 公开课 : 《MySQL 5.7 高可用新玩法》–吴炳锡 相关视频推荐:https://ke.qq.com/course/172600

本些分享视频地址: http://pan.baidu.com/s/1mia6MZu

基本环境准备

使用Centos 6.X 64位系统 MySQL 使用 MySQL-5.7.17-x86_64 版本,去官方下载mysql-5.7.17-linux-glibc2.5-x86_64.tar.gz 版本

机器名操作系统IPnode1centos-6.8192.168.11.100node2centos-6.8192.168.11.101node3centos-6.8192.168.11.102

对应的VIP: 192.168.11.110

特别提示:关闭iptables chkconfig –del iptables /etc/init.d/iptables stop

关闭:selinux setenforce 0 vim /etc/sysconfig/selinux SELINUX=permissive 更改为: SELINUX=disabled

下载MySQL :

mkdir /data/Softcd /data/Softwgethttps://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上分别执行。

  1. mkdir /opt/mysql
  2. cd /opt/mysql
  3. tar zxvf /data/Soft/mysql-5.7.17-linux-glibc2.5-x86_64.tar.gz
  4. ln -s /opt/mysql/mysql-5.7.17-linux-glibc2.5-x86_64 /usr/local/mysql
  5. mkdir /data/mysql/mysql3309/{data,logs,tmp} -p
  6. groupadd mysql
  7. useradd -g mysql -s /sbin/nologin -d /usr/local/mysql -M mysql
  8. chown -R mysql:mysql /data/mysql/
  9. chown -R mysql:mysql /usr/local/mysql
  10. cd /usr/local/mysql/
  11. ./bin/mysqld –defaults-file=/data/mysql/mysql3309/my3309.cnf –initialize
  12. cat /data/mysql/mysql3309/data/error.log |grep password
  13. /usr/local/mysql/bin/mysqld –defaults-file=/data/mysql/mysql3309/my3309.cnf &
  14. echo “export PATH=$PATH:/usr/local/mysql/bin” >>/etc/profile
  15. source /etc/profile
  16. mysql -S /tmp/mysql3309.sock -p #输才查到密码进入MySQL
  17. mysql>alter user user() identified by ‘wubxwubx’
  18. mysql>grant replication slave on . to ‘repl’@’%’ identified by ‘repl4slave’;
  19. mysql>grant all privilegs on . to ‘wubx’@’%’ identified by ‘wubxwubx’ # 一会测试使用的帐号
  20. mysql>reset master

每个节点按上面进行,遇到初始化和启动故障请认真阅读/data/mysql/mysql3309/data/error.log 信息。 my3309.cnf 可以从相应的目录下载或是加入QQ群: 579036588 下载,有问题入裙讨论。

搭建主从结构

node1上执行:

mysql -S /tmp/mysql3309.sock -pwubxwubx

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’;

mysql>start slave; mysql>show slave status\G; #确认同步OK

node2上执行:

mysql -S /tmp/mysql3309.sock -pwubxwubx

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’;

mysql>start slave; mysql>show slave status\G; #确认同步OK

node3上执行:

mysql -S /tmp/mysql3309.sock -pwubxwubx

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’;

mysql>start slave;

mysql>show slave status\G; #确认同步OK

安装keepalived

node1, node2, node3 上分别执行: 安装keepalived

yuminstallkeepalivled 

安装python依赖模块:

yuminstallMySQL-python.x86_64yuminstallpython2-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_typePASS        auth_pass 1111    }    track_script {        vs_mysql_82    }    notify /etc/keepalived/notify.py    virtual_ipaddress {        192.168.11.110    }} 

##Keepalived启动 node1, node2, node3分别执行:

/etc/init.d/keepalivedstart  

观查每个系统上的/var/log/messages 内容输出

##测试用例 在其它机器上使用:

mysql -h 192.168.11.110 -P 3309 -uwubx -pwubxwubx -e "select @@hostname" 

自已触发一下切换看看能不能完成自动化的切换。

写在最后:FOR Freedom 看看外边的世界,以及IT这一行,少不了去Google查资料,最后,安利一个加速器代理。一枝红杏 加速器,去Google查资料是绝对首选,连接速度快,使用也方便。我买的是99¥一年的,通过这个链接(http://whosmall.com/go/yzhx)注册后输上优惠码wh80,终身85折 ,平摊下来,每月才7块钱,特实惠。

本文标签: Vue.jschart.jsApp.vueGoogle

转自 SUN'S BLOG - 专注互联网知识,分享互联网精神!

原文地址: 深入学习Vue.js和 chart.js 来制作漂亮的图表

相关阅读:GIT能做什么、它和SVN在深层次上究竟有什么不同

相关阅读:分享一些对开发者最有用的、用户友好和功能丰富的Google Chrome扩展工具

相关阅读:分享一些实际Android开发过程中很多相见恨晚的工具或网站

相关阅读:我是 G 粉,一直关注 Google,最近 Google 有一些小动作,可能很多人不太了解

相关阅读:机器学习引领认知领域的技术创新,那么SaaS行业会被机器学习如何改变?

相关阅读:VPS 教程系列:Dnsmasq + DNSCrypt + SNI Proxy 顺畅访问 Google 配置教程

相关阅读: 对程序员有用:2017最新能上Google的hosts文件下载及总结网友遇到的各种hosts问题解决方法及配置详解

相关BLOG:SUN’S BLOG- 专注互联网知识,分享互联网精神!去看看:www.whosmall.com

原文地址:http://whosmall.com/?post=373

0 0
原创粉丝点击