HAProxy + mysql 配置

两台mysql机器 mysql1: 192.168.117.145

        mysql2: 192.168.117.148

 

1. 下载haproxy 的安装包

    

wget http://pkgs.fedoraproject.org/repo/pkgs/haproxy/haproxy-1.7.9.tar.gz/sha512/d1ed791bc9607dbeabcfc6a1853cf258e28b3a079923b63d3bf97504dd59e64a5f5f44f9da968c23c12b4279e8d45ff3bd39418942ca6f00d9d548c9a0ccfd73/haproxy-1.7.9.tar.gz

 

2. 解压

  

tar xzvf haproxy*

 

3.进入解压目录:

  

cd haproxy*

4.源码编译

sudo make TARGET=linux2628 PREFIX=/usr/local/haproxy 

  注意的是大小写,若改成小写,编译不通过或没有编译到指定路径下

  查询内核版本: uname -r ,通过cat README 可以知道编译平台的版本号,新版本的Ubuntu为linux2628

 

5.安装

sudo make install PREFIX=/usr/local/haproxy

6.编写配置文件

  

cd /usr/local/haproxy 
sudo vi haproxy.cfg

填写如下内容:

  

###########全局配置#########
global
 daemon
 nbproc 1
 pidfile /var/run/haproxy.pid

########默认配置############
defaults
 mode http #默认的模式mode { tcp|http|health },tcp是4层,http是7层,health只会返回OK
 retries 2 #两次连接失败就认为是服务器不可用,也可以通过后面设置
option redispatch #当serverId对应的服务器挂掉后,强制定向到其他健康的服务器
option abortonclose #当服务器负载很高的时候,自动结束掉当前队列处理比较久的链接
maxconn 4096 #默认的最大连接数
timeout connect 5000ms #连接超时
timeout client 30000ms #客户端超时
timeout server 30000ms #服务器超时
#timeout check 2000 #=心跳检测超时
log 127.0.0.1 local0 err #[err warning info debug]


listen mysql-lb1
    # 绑定的IP和端口 haproxy服务器一个网卡IP
    bind *:3307     
    # 模式是TCP
    mode tcp
    # 通过mysql连接去检测mysql是否可以访问 创建用户haproxy_check 密码为空,权限usage
    option mysql-check user haproxy 
    # 负载均衡算法是 轮询
    balance roundrobin
    # 下面两个就是后端被访问的server
    server mysql_1 192.168.117.145:3306 weight 1 check
    server mysql_2 192.168.117.148:3306 weight 1 check

# 自带的监控服务器的配置
# 监控服务的端口是 8888
listen stats
       bind *:1088 
       # 监控模式是http
       mode http
       option httpclose
       balance roundrobin
       stats uri /
       stats realm Haproxy\ Statistics
       # 监控的用户名和密码
       stats auth myadmin:myadmin

 

haproxy  是mysql的用户,可以通过 CREATE USER  haproxy  命令进行创建

7.运行haproxy

  

sudo /usr/local/haproxy/sbin/haproxy -f /usr/local/haproxy/haproxy.cfg

8. 让其开机自动运行:

sudo vi /etc/rc.local

  在文档最后添加:

/usr/local/haproxy/sbin/haproxy -f /usr/local/haproxy/haproxy.cfg

 

9.测试

  访问:  安装HAProxy IP:1088  如: http://192.168.117.148:1088/

用户名/密码  myadmin/myadmin

登录后可以看到两台mysql主机已经添加进来了

 

 使用Navicat for MySQL  连接

192.168.117.148 端口3307 ,这个IP和端口是在  haproxy.cfg里配置的。 mysqll_proxy

192.168.117.148 端口3306 ,mysql_2

192.168.117.145 端口3360 , mysql_1

1.在mysqll_proxy 表中插入一条数据, 查看mysql_1和mysql_2 中数据是否发生变化(为了效果明显,mysql_1 和mysql_2 没有配置主从备份和主主备份)

2.关闭mysql_1 和mysql_2 中数据变化的数据库,在mysqll_proxy 中在插入一条数据,查看另一个数据库的数据变化

(这个测试为了验证,一个数据库突然宕机,数据能否插入到另一个数据库中)

 

posted on 2018-10-19 16:37  gaizhongfeng  阅读(1624)  评论(0编辑  收藏  举报