一、安装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双主高可用的详细过程相关推荐

  1. Keepalived+Haproxy+Mysql(双主)高可用架构部署

    Keepalived+Haproxy+Mysql(双主)高可用架构部署 一.背景 公司原部署的Mysql架构为keepalived+Mysql双主,但是这个架构有个缺陷是所有的读写请求都在一台机器上( ...

  2. MySQL集群(四)之keepalived实现mysql双主高可用

    前面大家介绍了主从.主主复制以及他们的中间件mysql-proxy的使用,这一篇给大家介绍的是keepalived的搭建与使用! 一.keepalived简介 1.1.keepalived介绍 Kee ...

  3. 基于keepalived的mysql_【实用】基于keepalived的mysql双主高可用系统

    原标题:[实用]基于keepalived的mysql双主高可用系统 mysql单节点存储时,系统出现故障时服务不可用.不能及时恢复的问题,因此实际使用时,一般都会使用mysql双机方案,使用keepa ...

  4. keepalived+mysql双主高可用配置

    具体架构图如下 两个节点一主一从(从库上面也可以再挂一个从库),或者是双主,再利用keepalived在出现容灾时进行高可用切换. Keepalived原理说明: 其实这个原理可以很简单的用一个故事说 ...

  5. Haproxy+Keepalived实现网站双主高可用-理论篇

    一.Haproxy简介 HAProxy是一款提供高可用性.负载均衡以及基于TCP(第四层)和HTTP(第七层)应用的代理软件,HAProxy是完全免费的.借助HAProxy可以快速并且可靠的提供基于T ...

  6. Hapoxy+keepalived实现双主高可用负载均衡

    在测试了Nginx+Keepalived的负载均衡后,也对Haproxy+Keepalived双主模式做了测试,双主的模式充分利用了服务器资源,这样不会导致服务器浪费. 这里举例说明: 默认情况下,第 ...

  7. mysql命令大全_Keeplived+mysql双master高可用如何实现?

    作者:墨篱弦 简易拓扑 https://oscimg.oschina.net/oscnet/up-18b70e55451e4e69d0f449e6329034bdcfa.png 实验环境 Mysql4 ...

  8. mysql双主多从高可用配置_双主MySQL+keepalived高可用配置

    部署双节点双主数据库服务器MySQL 分别在二台服务器上安装mysql,要求同版本或主服务器比从服务器版本高. 主机mysql配置: Vi /etc/my.cnf [mysqld] Log-bin=m ...

  9. mycat与mysql proxy_高可用Mysql架构_Mycat集群部署(HAProxy + 两台Mycat+Mysql双主双从)...

    既然大家都知道了Mysql分布式在大型网站架构中的作用,在这里就不再阐述.本片博客文章是基于我曾经搭建过的一个Mysql集群基础上实现的,实现过双主热备.读写分离.分库分表. 环境 centos6.4 ...

最新文章

  1. 如何修改访问vnc服务器的密码,修改VNC访问的密码
  2. java TreeMap 源代码分析 平衡二叉树
  3. 怎么判断几行_日语高考作文该怎么写,和汉语作文一样吗?
  4. php 目录管理,[PHP文件管理器]①--遍历目录
  5. html转换react native,React native HTML entities
  6. java 线程模型_Java基础篇之Java线程模型
  7. HTML语法初探(一)
  8. 关于渐变属 gradient:
  9. matlab卷积反投影,卷积反投影法图象重建.pdf
  10. int too large to convert to float
  11. win7刷新环境变量的方法
  12. CAD几何引擎和图形引擎的关系
  13. Android支付宝刷步数,支付宝刷步数教程(手机免ROOT)
  14. 可在线接收验证短信的网站
  15. 浏览器被流氓软件修改了主页怎么办?
  16. 如何提升你的面试机会?
  17. python提取数列数字_从pandas datafram中的列中提取字符串中的数字
  18. oracle中的Insert into
  19. 学习Java的第十周
  20. 拼图软件那个好用?好用的拼图软件分享

热门文章

  1. ES--深分页Scroll
  2. 有了这个Python库,再也不愁给孩子起名字了
  3. 【无忧美名网-一款根据诗经、古诗词等国学给宝宝起名的小程序-uniapp端】
  4. Visualbox下安装增加功能报错的处理方法
  5. 解决ora-01861文字与格式字符串不匹配
  6. python全栈学习笔记
  7. 用Python学《微积分B》(定积分)
  8. ubuntu Basler相机怎么设置静态IP
  9. 卷积神经网络(CNN)在语音识别中的应用
  10. 发现美团的一个新锅,可能程序员背不动了