使用mysql proxy对数据库进行读写分离
Posted lvlv岁月流逝
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用mysql proxy对数据库进行读写分离相关的知识,希望对你有一定的参考价值。
服务器安排如下:
192.168.100.128 主
192.168.100.129 从
192.168.100.130 mysql-proxy
1、在100.130中下载安装mysql-proxy
tar -zxvf mysql-proxy-0.8.5-linux-el6-x86-64bit.tar.gz cp mysql-proxy-0.8.5-linux-el6-x86-64bit /usr/local/mysql-proxy
2、配置环境变量
LUA_PATH="/usr/local/mysql-proxy/share/doc/mysql-proxy/?.lua" export LUA_PATH PATH=$PATH:/usr/local/mysql-proxy/bin export JAVA_HOME JRE_HOME PATH CLASSPATH HADOOP_HOME LUA_PATH
保存退出后
source /etc/profile
3、修改mysql proxy的读写分离脚本的配置
vim /usr/local/mysql-proxy/share/doc/mysql-proxy/rw-splitting.lua
if not proxy.global.config.rwsplit then proxy.global.config.rwsplit = { min_idle_connections = 1, // 改为1 max_idle_connections = 2, // 改为2 is_debug = false } end
默认最小4个(最大8个)以上的客户端连接才会实现读写分离, 现改为最小1个最大2个,便于读写分离的测试
4、在100.128,100.129为代理创建用户
mysql>grant all on *.* to ‘test‘@‘192.168.100.130‘ identified by ‘321321‘;
mysql>flush privileges;
5、启动mysql-proxy
vim /usr/local/mysql-proxy/mysql-proxy.sh // 新建一个shell文件,加入以下内容
内容如下
mysql-proxy --daemon --log-level=debug --log-file=/var/log/mysql-proxy.log --plugins=proxy -b 192.168.100.128:3306 -r 192.168.100.129:3306 --proxy-lua-script="/usr/local/mysql-proxy/share/doc/mysql-proxy/rw-splitting.lua" --plugins=admin --admin-username="test" --admin-password="321321" --admin-lua-script="/usr/local/mysql-proxy/share/doc/mysql-proxy/admin.lua"
注意,在“/usr/local/mysql-proxy/share/doc/mysql-proxy/”目录中默认没有admin.lua文件但是有admin-sql.lua,
cp admin-sql.lua admin.lua
启动
./mysql-proxy.sh
需要注意的是用户权限及防火墙关掉
以上是关于使用mysql proxy对数据库进行读写分离的主要内容,如果未能解决你的问题,请参考以下文章
MySQL学习笔记之十:使用mysql-proxy实现MySQL读写分离