mysql proxy 0.8_使用mysql-proxy-0.8.5实现MySQL读写分离

实验环境:RHEL6.6-x86-64mysql-proxy-0.8.5-linux-glibc2.3-x86-64bit.tar.gzmysql-5.6...

实验环境:RHEL6.6-x86-64

mysql-proxy-0.8.5-linux-glibc2.3-x86-64bit.tar.gz

mysql-5.6.14-linux-glibc2.5-x86_64.tar.gz

为了减轻数据库负载,可以考虑使用读写分离来实现。目前实现读写分离的方式大约有两种:

基于程序代码实现

在程序代码中根据select、insert语句进行路由分类。读写分别由不同Server响应。

基于中间代理层实现

代理位于客户端与服务端之间,代理层接收客户端请求后,判断读写请求转发至不同Server。                   mysql-proxy便是其中一种。它可以监视,分析,改变它们的会话。他有多种用途,负载均衡,                 查询分析,查询过滤和修改等。

69736090_1.jpg

MySQL主从搭建,请参考我的另一篇文章,,这里不再赘述。

安装mysql-proxy

# tar xf mysql-proxy-0.8.5-linux-glibc2.3-x86-64bit.tar.gz -C /usr/local/

# cd /usr/local/

# ln  -s  mysql-proxy-0.8.5-linux-glibc2.3-x86-64bit   mysql-proxy

vim /etc/profile.d/mysql-proxy.sh

export PATH=$PATH:/usr/local/mysql-proxy/bin

为/etc/init.d/mysql-proxy提供参数# vim /etc/sysconfig/mysql-proxy

ADMIN_USER="admin"

ADMIN_PASSWORD="admin"

ADMIN_ADDRESS=""

PROXY_ADDRESS="0.0.0.0:3306"

PROXY_USER="mysql-proxy"

PROXY_PID=/var/run/mysql-proxy.pid

PROXY_OPTIONS="--daemon"

ADMIN_LUA_SCRIPT="/usr/local/mysql-proxy/share/doc/mysql-proxy/admin.lua"

RW_SPLITTING_LUA_SCRIPT=/usr/local/mysql-proxy/share/doc/mysql-proxy/rw-splitting.lua

PROXY_OPTIONS="--daemon --log-level=info --log-file="/var/log/mysql-proxy.log" --plugins=proxy --plugins=admin --proxy-backend-addresses=192.168.1.5:3306 --proxy-read-only-backend-addresses=192.168.1.6:3306 --proxy-lua-script=$RW_SPLITTING_LUA_SCRIPT --pid-file=$PROXY_PID --proxy-address=$PROXY_ADDRESS --user=$PROXY_USER --admin-username=$ADMIN_USER --admin-lua-script=$ADMIN_LUA_SCRIPT --admin-password=$ADMIN_PASSWORD"

为mysql-proxy提供sysv风格脚本vim /etc/init.d/mysql-proxy

#!/bin/bash

#

# mysql-proxy This script starts and stops the mysql-proxy daemon

#

# chkconfig: - 78 30

# processname: mysql-proxy

# description: mysql-proxy is a proxy daemon for mysql

# Source function library.

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

prog="/usr/local/mysql-proxy/bin/mysql-proxy"

# Source networking configuration.

if [ -f /etc/sysconfig/network ]; then

. /etc/sysconfig/network

fi

# Check that networking is up.

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

# Set default mysql-proxy configuration.

#ADMIN_LUA_SCRIPT="/usr/local/mysql-proxy/share/doc/mysql-proxy/admin.lua"

#PROXY_OPTIONS="--daemon"

#PROXY_PID=/var/run/mysql-proxy.pid

# Source mysql-proxy configuration.

if [ -f /etc/sysconfig/network ]; then

. /etc/sysconfig/network

fi

# Check that networking is up.

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

# Source mysql-proxy configuration.

if [ -f /etc/sysconfig/mysql-proxy ]; then

. /etc/sysconfig/mysql-proxy

fi

RETVAL=0

start() {

echo -n $"Starting $prog: "

daemon $prog $PROXY_OPTIONS

RETVAL=$?

echo

if [ $RETVAL -eq 0 ]; then

touch /var/lock/subsys/mysql-proxy

fi

}

stop() {

echo -n $"Stopping $prog: "

killproc -p $PROXY_PID -d 3 $prog

RETVAL=$?

echo

if [ $RETVAL -eq 0 ]; then

rm -f /var/lock/subsys/mysql-proxy

rm -f $PROXY_PID

fi

}

# See how we were called.

case "$1" in

start)

start

;;

stop)

stop

;;

restart)

stop

start

;;

condrestart|try-restart)

if status -p $PROXY_PIDFILE $prog >&/dev/null; then

stop

start

fi

;;

status)

status -p $PROXY_PID $prog

;;

*)

echo "Usage: $0 {start|stop|restart|reload|status|condrestart|try-restart}"

RETVAL=1

;;

esac

exit $RETVAL

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值