Haproxy+Keepalived+MySQL高可用均衡负载部署

本文介绍了如何通过Haproxy和Keepalived实现MySQL的高可用性和负载均衡。首先,详细阐述了MySQL主从同步的配置步骤,包括安装、配置MySQL主从以及设置主主复制。接着,讲述了Haproxy的安装和配置,用于负载均衡MySQL实例。再者,介绍了Keepalived的安装和配置,确保高可用性。最后,讨论了在部署过程中可能遇到的问题及解决方案。
摘要由CSDN通过智能技术生成

一、安装主从MySQL

1. 按照Linux-rpm安装MySQL步骤完成MySQL安装;

2. 修改启动的配置文件

(1)复制/usr/share/mysql路径下的my-default.cnf文件或my-medium.cnf文件至/etc目录

(2)修改配置文件:

server-id = 91   #指定服务器ID

thread_concurrency = 4 #

log-bin = mysql-bin    #开启二进制日志

skip-name-resolve

binlog-ignore = mysql   #忽略mysql和information_schema

binlog-ignore = information_schema

binlog-do_db = integrator_db #同步的数据库名,不配置此项则默认同步所有数据库

 

(3)在Master服务器上创建MySQL用户(授权复制用户)

命令:grant replication slave on *.* to '用户名'@'slave IP地址' identified by '密码';

(4)查看master状态

命令:show master status;

 

 

(5)同步骤(2)修改slave的配置文件,其中server-id要设置比master大

 

(6)在slave添加master配置

命令:change master to

->master_host='master主机IP',

->master_port='master mysql服务使用端口',

->master_user='master mysql远程用户名',

->master_password='master mysql远程密码',

->master_log_file='master二进制日志文件',    #show master status中File的值

->master_log_pos='master日志地址';         show master status中Position的值

 

(7)主从同步测试

命令:show slave status\G

当Slave_IO_Running和Slave_SQL_Running均为Yes时,表示同步成功。

 

 

二、安装Haproxy

 

 master和slave安装配置步骤相同。

 

1、上传安装包、授权并解压;

命令:chmod 755 安装包名称;

tar -zxvf 安装包名称;

如本次使用haproxy-1.4.8.tar.gz安装包。  

 

2、编译、安装

(1)查看系统内核,选择对应编译命令

查看内核命令:uname -a

(2)编译

如果是32位系统,则命令为:make TARGET=linux26 ARCH=i386 PREFIX=编译路径

如果是64位系统,则命令为:make TARGET=linux26 ARCH=x86_64PREFIX=编译路径

假设本次系统为64位,安装路径为/var/local/haproxy,则命令为:make TARGET=linux26 ARCH=x86_64 PREFIX=/var/local/haproxy

(3)安装

命令:make install PREFIX=编译路径

同步骤(2),命令为:make install PREFIX=/var/local/haproxy

 

3、创建配置文件、日志目录

命令:mkdir -p /var/local/haproxy/logs/var/local/haproxy/conf  /var/local/haproxy/sbin

4、编辑配置文件

命令:vim /var/local/haproxy/conf/haproxy.conf,配置文件内容:

global    

    log         127.0.0.1 local2  

    chroot      /var/lib/haproxy    

    pidfile     /var/run/haproxy.pid   

    maxconn     4096   

    user        haproxy    

    group       haproxy    

    daemon

    # turn on stats unix socket

    stats socket /var/lib/haproxy/stats

defaults     

    mode                    http    

    log                     global   

    option                  tcplog

    option                  dontlognull   

    option                  redispatch   

    retries                 3    

    timeout queue           1m

    timeout connect         10s   

    timeout client          1m    

    timeout server          1m    

    timeout check           10s

    maxconn                 4096

listen mysql_proxy

        bind 0.0.0.0:3307

        mode tcp

        balance  source

        option mysql-check user root password 111111    #远程用户

        server mysqldb1 192.168.0.91:3306 weight 1  check  inter 1s rise 2 fall 2        #master mysql

        server mysqldb2 192.168.0.121:3306 weight 2  check  inter 1s rise 2 fall 2 backup         #slave mysql

listen stats     #监控

       mode http

       bind 0.0.0.0:8888

       stats enable

       stats uri /dbs

       stats realm Global\ statistics

       stats auth admin:admin

配置文件说明同均衡负载-haproxy配置文件说明

 

5、haproxy启动脚本管理

    命令:vi /etc/init.d/haproxy,增加配置:

#!/bin/bash

#

# chkconfig: 2345 85 15

# description: HA-Proxy is a TCP/HTTP reverse proxy which is particularly suited \

#              for high availability environments.

# processname: haproxy

# config: /etc/haproxy.cfg

# pidfile: /var/run/haproxy.pid

 

# Source function library.

if [ -f /etc/init.d/functions ]; then

  . /etc/init.d/functions

elif [ -f /etc/rc.d/init.d/functions ] ; then

  . /etc/rc.d/init.d/functions

else

  exit 0

fi

 

CONF_FILE="/etc/haproxy/haproxy.cfg"

HAPROXY_BINARY="/usr/local/sbin/haproxy"

PID_FILE="/var/run/haproxy.pid"

 

# Source networking configuration.

. /etc/sysconfig/network

 

# Check that networking is up.

[ ${NETWORKING} = "no" ] && exit 0

 

[ -f ${CONF_FILE} ] || exit 1

 

RETVAL=0

 

start() {

  $HAPROXY_BINARY -c -q -f $CONF_FILE

  if [ $? -ne 0 ]; then

    echo "Errors found in configuration file."

    return 1

  fi

 

  echo -n "Starting HAproxy: "

  daemon $HAPROXY_BINARY -D -f $CONF_FILE -p $PID_FILE

  RETVAL=$?

  echo

  [ $RETVAL -eq 0 ] && touch /var/lock/subsys/haproxy

  return $RETVAL

}

 

stop() {

  echo -n "Shutting down HAproxy: "

  killproc haproxy -USR1

  RETVAL=$?

  echo

  [ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/haproxy

  [ $RETVAL -eq 0 ] && rm -f $PID_FILE

  return $RETVAL

}

 

restart() {

  $HAPROXY_BINARY -c -q -f $CONF_FILE

  if [ $? -ne 0 ]; then

    echo "Errors found in configuration file, check it with 'haproxy check'."

    return 1

  fi

  stop

  start

}

 

check() {

  $HAPROXY_BINARY -c -q -V -f $CONF_FILE

}

 

rhstatus() {<

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值