一、安装主从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() {<