haproxy实现mysql双主高可用的详细过程
一、安装haproxy
1.找到haproxy的包
http://pkgs.fedoraproject.org/repo/pkgs/haproxy/haproxy-1.7.9.tar.gz
也可以直接用yum安装
yum install -y haproxy
2.解压
tar zxf haproxy-1.7.9.tar.gz
3.编译安装
cd haproxy-1.7.9
make TARGET=linux2628 ARCH=x86_64 PREFIX=/usr/local/haproxy
make install PREFIX=/usr/local/haproxy
#参数说明
TARGET=linux26 #内核版本,使用uname -r查看内核,如:2.6.18-371.el5,此时该参数就为linux26;kernel 大于2.6.28的用:TARGET=linux2628
ARCH=x86_64 #系统位数
PREFIX=/usr/local/haprpxy #/usr/local/haprpxy为haprpxy安装路径
4.编辑启动脚本(自己创建)
vi /etc/init.d/haproxy
#!/bin/sh
#
# haproxy
#
# chkconfig: - 85 15
# description: HAProxy is a free, very fast and reliable solution \
# offering high availability, load balancing, and \
# proxying for TCP and HTTP-based applications
# processname: haproxy
# config: /etc/haproxy/haproxy.cfg
# pidfile: /var/run/haproxy.pid# Source function library.
. /etc/rc.d/init.d/functions# Source networking configuration.
. /etc/sysconfig/network# Check that networking is up.
[ "$NETWORKING" = "no" ] && exit 0exec="/usr/sbin/haproxy"
prog=$(basename $exec)[ -e /etc/sysconfig/$prog ] && . /etc/sysconfig/$progcfgfile=/etc/haproxy/haproxy.cfg
pidfile=/var/run/haproxy.pid
lockfile=/var/lock/subsys/haproxycheck() {$exec -c -V -f $cfgfile $OPTIONS
}start() {$exec -c -q -f $cfgfile $OPTIONSif [ $? -ne 0 ]; thenecho "Errors in configuration file, check with $prog check."return 1fiecho -n $"Starting $prog: "# start it up here, usually something like "daemon $exec"daemon $exec -D -f $cfgfile -p $pidfile $OPTIONSretval=$?echo[ $retval -eq 0 ] && touch $lockfilereturn $retval
}stop() {echo -n $"Stopping $prog: "# stop it here, often "killproc $prog"killproc $progretval=$?echo[ $retval -eq 0 ] && rm -f $lockfilereturn $retval
}restart() {$exec -c -q -f $cfgfile $OPTIONSif [ $? -ne 0 ]; thenecho "Errors in configuration file, check with $prog check."return 1fistopstart
}reload() {$exec -c -q -f $cfgfile $OPTIONSif [ $? -ne 0 ]; thenecho "Errors in configuration file, check with $prog check."return 1fiecho -n $"Reloading $prog: "$exec -D -f $cfgfile -p $pidfile $OPTIONS -sf $(cat $pidfile)retval=$?echoreturn $retval
}force_reload() {restart
}fdr_status() {status $prog
}case "$1" instart|stop|restart|reload)$1;;force-reload)force_reload;;check)check;;status)fdr_status;;condrestart|try-restart)[ ! -f $lockfile ] || restart;;*)echo $"Usage: $0 {start|stop|status|restart|try-restart|reload|force-reload}"exit 2
esac
5.加入自启动
chkconfig --add haproxy
chkconfig haproxy on
chmod +x /etc/init.d/haproxy
二、配置haproxy
1.新建目录和用户
mkdir /etc/haproxy
mkdir /var/lib/haproxy
useradd -r haproxy
2.编辑配置文件
vi /etc/haproxy/haproxy.cfg
globallog 127.0.0.1 local2chroot /var/lib/haproxypidfile /var/run/haproxy.pidmaxconn 4000user haproxygroup haproxydaemonstats socket /var/lib/haproxy/statsdefaultslog globallog 127.0.0.1 local3mode httpoption tcplogoption dontlognullretries 10option redispatchmaxconn 2000timeout connect 10stimeout client 1mtimeout server 1mtimeout http-keep-alive 10stimeout check 10slisten mysqlbind 0.0.0.0:7306mode tcpbalance roundrobinserver mysql1 192.168.1.78:3306server mysql2 192.168.1.77:3306listen statsbind 0.0.0.0:1080mode httpoption httplogmaxconn 10stats refresh 30sstats uri /statsstats realm XingCloud\ Haproxystats auth admin:admin #用这个账号登录,可以自己设置stats auth Frank:Frankstats hide-versionstats admin if TRUE
3.配置日志
(1).vim /etc/rsyslog.conf
# Provides UDP syslog reception #去掉下面两行注释,开启UDP监听
$ModLoad imudp
$UDPServerRun 514
local2.* /var/log/haproxy.log #添加日志
(2).vi /etc/sysconfig/rsyslog
SYSLOGD_OPTIONS=""
改为 SYSLOGD_OPTIONS="-r -m 2 -c 2"
(3).创建日志文件
touch /var/log/haproxy.log
4.启动日志和haproxy
service haproxy start
service rsyslog restart
netstat -plantu | grep 7306 --查看端口7306
三、测试haproxy是否成功
1.在两台数据库添加权限
GRANT ALL ON *.* TO 'haproxy'@'192.168.1.%' IDENTIFIED BY '123456';
FLUSH PRIVILEGES;
2.在haproxy这台服务器远程登录到mysql服务器,测试
yum install -y mysql (若没有mysql客户端,安装)
mysql -uhaproxy -p123456 -h 192.168.1.78
mysql -uhaproxy -p123456 -h 192.168.1.77
3.测试haproxy
在其他的服务器上输入(haproxy的服务器地址192.168.88):
mysql -uhaproxy -p123456 -h 192.168.88 -P 7306
是否能连接到数据库
7306是在配置文件中设置的端口,通过haproxy的7306端口访问mysql的3306端口
4.页面访问
浏览器输入http://192.168.1.88:1080/stats
出现下图所示:
证明成功。
haproxy实现mysql双主高可用的详细过程相关推荐
- Keepalived+Haproxy+Mysql(双主)高可用架构部署
Keepalived+Haproxy+Mysql(双主)高可用架构部署 一.背景 公司原部署的Mysql架构为keepalived+Mysql双主,但是这个架构有个缺陷是所有的读写请求都在一台机器上( ...
- MySQL集群(四)之keepalived实现mysql双主高可用
前面大家介绍了主从.主主复制以及他们的中间件mysql-proxy的使用,这一篇给大家介绍的是keepalived的搭建与使用! 一.keepalived简介 1.1.keepalived介绍 Kee ...
- 基于keepalived的mysql_【实用】基于keepalived的mysql双主高可用系统
原标题:[实用]基于keepalived的mysql双主高可用系统 mysql单节点存储时,系统出现故障时服务不可用.不能及时恢复的问题,因此实际使用时,一般都会使用mysql双机方案,使用keepa ...
- keepalived+mysql双主高可用配置
具体架构图如下 两个节点一主一从(从库上面也可以再挂一个从库),或者是双主,再利用keepalived在出现容灾时进行高可用切换. Keepalived原理说明: 其实这个原理可以很简单的用一个故事说 ...
- Haproxy+Keepalived实现网站双主高可用-理论篇
一.Haproxy简介 HAProxy是一款提供高可用性.负载均衡以及基于TCP(第四层)和HTTP(第七层)应用的代理软件,HAProxy是完全免费的.借助HAProxy可以快速并且可靠的提供基于T ...
- Hapoxy+keepalived实现双主高可用负载均衡
在测试了Nginx+Keepalived的负载均衡后,也对Haproxy+Keepalived双主模式做了测试,双主的模式充分利用了服务器资源,这样不会导致服务器浪费. 这里举例说明: 默认情况下,第 ...
- mysql命令大全_Keeplived+mysql双master高可用如何实现?
作者:墨篱弦 简易拓扑 https://oscimg.oschina.net/oscnet/up-18b70e55451e4e69d0f449e6329034bdcfa.png 实验环境 Mysql4 ...
- mysql双主多从高可用配置_双主MySQL+keepalived高可用配置
部署双节点双主数据库服务器MySQL 分别在二台服务器上安装mysql,要求同版本或主服务器比从服务器版本高. 主机mysql配置: Vi /etc/my.cnf [mysqld] Log-bin=m ...
- mycat与mysql proxy_高可用Mysql架构_Mycat集群部署(HAProxy + 两台Mycat+Mysql双主双从)...
既然大家都知道了Mysql分布式在大型网站架构中的作用,在这里就不再阐述.本片博客文章是基于我曾经搭建过的一个Mysql集群基础上实现的,实现过双主热备.读写分离.分库分表. 环境 centos6.4 ...
最新文章
- 如何修改访问vnc服务器的密码,修改VNC访问的密码
- java TreeMap 源代码分析 平衡二叉树
- 怎么判断几行_日语高考作文该怎么写,和汉语作文一样吗?
- php 目录管理,[PHP文件管理器]①--遍历目录
- html转换react native,React native HTML entities
- java 线程模型_Java基础篇之Java线程模型
- HTML语法初探(一)
- 关于渐变属 gradient:
- matlab卷积反投影,卷积反投影法图象重建.pdf
- int too large to convert to float
- win7刷新环境变量的方法
- CAD几何引擎和图形引擎的关系
- Android支付宝刷步数,支付宝刷步数教程(手机免ROOT)
- 可在线接收验证短信的网站
- 浏览器被流氓软件修改了主页怎么办?
- 如何提升你的面试机会?
- python提取数列数字_从pandas datafram中的列中提取字符串中的数字
- oracle中的Insert into
- 学习Java的第十周
- 拼图软件那个好用?好用的拼图软件分享