mysql proxy 配置文件_mysql配置mysql-proxy读写分离

192.168.23.131与192.168.23.132两台服务器,131是主,132是从,131是读写,132是只读。myql-proxy的IP是192.168.23.130

下面开整

先安装lua

Lua 是一个小巧的脚本语言。Lua由标准C编写而成,代码简洁优美,几乎在所有操作系统和平台上都可以编译,运行。

一个完整的Lua解释器不过200k,在目前所有脚本引擎中,Lua的速度是最快的。这一切都决定了Lua是作为嵌入式脚本的最佳选择。

先安装可能的依赖包

[root@bogon ~]# yum -y install gcc* gcc-c++* autoconf* automake* zlib* libxml* ncurses-devel* libmcrypt* libtool* flex* pkgconfig*libevent* glib* readline-devel

[root@bogon~]# mkdir /opt/install/[root@bogon~]# cd /opt/install/[root@bogon install]# wget http://www.lua.org/ftp/lua-5.3.2.tar.gz

[root@bogon install]# tar zxvf lua-5.3.2.tar.gz

[root@bogon install]# cd lua-5.3.2[root@bogon install]# make linux

下面开始安装mysql-proxy

安装之前先看一下自己机器是否是64位系统

查看centos内核的版本

[root@bogon install]# cat /etc/issue

查看linux版本

[root@bogon install]# cat /proc/version

[root@bogon install]# lsb_release -a

如果以上命令都没有出现64字眼说明是32位系统,这里主要是确定你将要下载的mysql-proxy版本应该是哪个。

下载地址:http://mysql.cdpa.nsysu.edu.tw/Downloads/MySQL-Proxy/

[root@bogon install]# cd /opt/install

[root@bogon install]# wget http://cdn.mysql.com/archives/mysql-proxy/mysql-proxy-0.8.4-linux-el6-x86-64bit.tar.gz

[root@bogon install]# tar zxvf mysql-proxy-0.8.4-linux-el6-x86-64bit.tar.gz

[root@bogon install]# mkdir /usr/local/mysql-proxy

[root@bogon install]# cp /opt/install/mysql-proxy-0.8.4-linux-rhel5-x86-32bit/* /usr/local/mysql-proxy

[root@bogon install]# cd /usr/local/mysql-proxy

[root@bogon install]# export PATH=$PATH:/usr/local/mysql-proxy/bin/

编辑mysql-proxy配置文件

编辑mysql-proxy配置文件

[root@bogon install]# cp /usr/local/mysql-proxy/share/doc/mysql-proxy/rw-splitting.lua /usr/local/mysql-proxy/

[root@bogon install]# vi rw-splitting.lua

找到:

if not proxy.global.config.rwsplit then

proxy.global.config.rwsplit = {

min_idle_connections = 4,

max_idle_connections = 8,

is_debug = false

}

end

这里的4、8是指定链接数,大家可以在做试验时调整为1。

ok,保存,退出。

mysql-proxy --proxy-read-only-backend-addresses=192.168.23.132:3306 --proxy-backend-addresses=192.168.2.131:3306 --proxy-lua-script=/opt/mysql-proxy/share/rw-splitting.lua&

这里的192.168.23.131与192.168.23.132是主从数据库。参见http://blog.csdn.net/e421083458/article/details/19574049

以上命令后缀追加&表示为后端任务。

打开4040端口防火墙端口,因为mysql-proxy监听端口是4040再也不是3306了。正好做以区分。

[root@bogon install]# /sbin/iptables -I INPUT -p tcp --dport 4040 -j ACCEPT

[root@bogon install]# /etc/rc.d/init.d/iptables save

[root@bogon install]# service iptables save

查看监听情况:

[root@bogon install]# netstat -tlp | grep mysql-proxy

tcp 0 0 *:yo-main *:* LISTEN 13364/mysql-proxy

yo-main很奇怪吧,对我也奇怪,不管它了,下面我们测试一下功能吧。

刚刚我们提到的192.168.23.131与192.168.23.132两台服务器,131是主,132是从,131是读写,132是只读。myql-proxy的IP是192.168.23.130

创建用于读写分离的数据库连接用户

在131服务器上操作以下命令:

[root@bogon ~]# mysql -uroot -p123456

mysql> grant all on *.* to 'proxy'@'192.168.23.130' identified by '123456';

由于我们设置了131与132的主从复制,所以此时132也执行了以上命令,我们可以确定一下。

在132服务上操作以下命令:

mysql> select user,password,host frommysql.user;+--------+-------------------------------------------+----------------+

| user | password | host |

+--------+-------------------------------------------+----------------+

| root | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 | localhost |

| root | | bogon |

| root | | 127.0.0.1 |

| proxy | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 | 192.168.23.130 |

+--------+-------------------------------------------+----------------+

4 rows in set (0.00 sec)

没错结果存在。

但是我们要做的试验是测试读写分离,所以要让这两台服务器有误差才行。所以暂停132的从服务:

mysql> slave stop;

下面我们在131服务器上操作以下命令:

mysql> insert into first_tb values (007,’first’);

mysql> insert into first_tb values (110,’second’);

最后再到132上确认一下数据是否有误差,下面试验开始。

在131上打开4个终端,依次敲以下的命令:

[root@bogon ~]# mysql -uproxy -p123456 -P4040 -h192.168.23.130mysql> select * from first_db.first_tb;

你会发现结果会有不一样,那证明配置试验成功。也可以多此尝试以上两行代码直到得到结果。

试验结束记得将slave start,方法参照http://blog.csdn.net/e421083458/article/details/19574049

追加内容:设置mysql-proxy服务脚本。

#!/bin/sh

#

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

#

# chkconfig:- 78 30# processname: mysql-proxy

# description: mysql-proxy isa proxy daemon to mysql

# Source function library.

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

#PROXY_PATH=/usr/local/bin

PROXY_PATH=/opt/mysql-proxy/bin

prog="mysql-proxy"# Source networking configuration.

./etc/sysconfig/network

# Check that networkingisup.

[ ${NETWORKING}= "no" ] && exit 0# Setdefault mysql-proxy configuration.

#PROXY_OPTIONS="--daemon"PROXY_OPTIONS="--proxy-read-only-backend-addresses=192.168.23.132:3306 --proxy-backend-addresses=192.168.23.131:3306 --proxy-lua-script=/opt/mysql-proxy/share/rw-splitting.lua"PROXY_PID=/opt/mysql-proxy/run/mysql-proxy.pid

# Source mysql-proxy configuration.if [ -f /etc/sysconfig/mysql-proxy ]; then

./etc/sysconfig/mysql-proxy

fi

PATH=$PATH:/usr/bin:/usr/local/bin:$PROXY_PATH

# Bydefault it's all good

RETVAL=0# See how we were called.case "$1" instart)

# Start daemon.

echo-n $"Starting $prog:"$NICELEVEL $PROXY_PATH/mysql-proxy $PROXY_OPTIONS --daemon --pid-file=$PROXY_PID --user=root --log-level=debug --log-file=/opt/mysql-proxy/log/mysql-proxy.log

RETVAL=$?echoif [ $RETVAL = 0]; then

touch/var/lock/subsys/mysql-proxy]

echo"ok"fi

;;

stop)

# Stop daemons.

echo-n $"Stopping $prog:"killproc $prog

RETVAL=$?echoif [ $RETVAL = 0]; then

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

rm-f $PROXY_PID

fi

;;

restart)

$0stop

sleep3$0start

;;

condrestart)

[-e /var/lock/subsys/mysql-proxy ] && $0restart

;;

status)

status mysql-proxy

RETVAL=$?;;*)

echo"Usage: $0 {start|stop|restart|status|condrestart}"RETVAL=1;;

esac

exit $RETVAL

启动脚本:

[root@bogon init.d]# /opt/mysql-proxy/init.d/mysql-proxy start

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值