前情提要:
参考链接:
http://www.osyunwei.com/archives/7464.html
ps:以上为本次操作的主要参考资料,非常感谢此文作者的贡献,我的随笔的主要目的是
说明在使用以上资料参考部署的过程中,遇到的一些问题以及补充。
目的:
1、解决web读写分离功能缺陷,实现数据库从库负载均衡与高可用
2、简化web与主要功能模块的配置,使用vip接管
实验环境:
操作系统:redhat6.4 64位 #目前主流的版本应该在6.4以上,主要是硬件要求
DB版本:mysql5.6 #这个没什么可说的,选择版本主要看应用需求
lvs主机:192.168.1.180 #部署lvs+keepalived,用于管理VIP,并分发数据库读写请求
从库IP:192.168.20.182、192.168.20.183 #mysql_slave 一主两从
测试机:192.168.20.181 #用于测试整套架构的功能
VIP:192.168.20.253 #虚拟IP,用于请求的分发
一、环境安装配置
数据库mysql5.6安装(20.182、20.183)
rpm -ivh
MySQL-server-5.6.16-1.el6.x86_64.rpm
MySQL-devel-5.6.16-1.el6.x86_64.rpm
MySQL-shared-5.6.16-1.el6.x86_64.rpm
MySQL-client-5.6.16-1.el6.x86_64.rpm
MySQL-shared-compat-5.6.16-1.el6.x86_64.rpm
mysql5.6的安全性有所提高,安装完成后会有如下提示:
You will find that password in '/root/.mysql_secret'
cat /root/.mysql_secret
# The random password set for the root user at Mon Aug 31 08:28:44 2015 (local time): 06tIwUud
通过密码进入mysql之后:通过:SET PASSWORD = password('xxxxxx'); 重置密码即可。 其他跟正常的mysql安装相同。
数据库主从搭建(略)
恩......不是我偷懒,主要是网上这块的内容太多了,一抓一大把,没有什么可写的价值,之后如果有兴趣可能单开一个随笔,这就不写了。
大家随意的搜一下。
网络环境配置(所有机器)
由于我的生产环境有单独的思科防火墙,所以我所有的服务器的系统防火墙都是关闭的,包括selinux,不然太麻烦。
有些莫名其妙的报错可能都是iptable和selinux引起的,为了方便一般默认关闭
1、关闭selinux:
修改/etc/selinux/config文件中的SELINUX="" 为 disabled ,然后重启。
如果不想重启系统,使用命令setenforce 0
2、关闭iptables:
service iptables stop
chkconfig iptables off
二、LVS+keepalive主机搭建(192.168.1.180)
为了简化步骤,这里不做管理机器的高可用配置,
1、安装LVS
yum install ipvsadm #当前版本的linux内核已经集成lvs,此为管理模块