前言
mysql-proxy是一个官方提供的框架,通过读写分离来提升数据库的并发负载能力
192.168.0.1:3306 # 主
192.168.0.2:3306 # 从
192.168.0.3:4000 # proxy
1 安装mysql-proxy
wget https://downloads.mysql.com/archives/get/file/mysql-proxy-0.8.5-linux-glibc2.3-x86-64bit.tar.gz
tar zxvf mysql-proxy-0.8.5-linux-glibc2.3-x86-64bit.tar.gz
mv mysql-proxy-0.8.5-linux-glibc2.3-x86-64bit /usr/local/mysql-proxy
2 配置mysql-proxy,创建主配置文件
[mysql-proxy]
user=root #运行mysql-proxy用户
admin-username=proxy #主从mysql共有的用户
admin-password= #用户的密码
proxy-address=192.168.0.3:4000 #mysql-proxy运行ip和端口,不加端口,默认4040
proxy-read-only-backend-addresses=192.168.0.2 #指定后端从slave读取数据
proxy-backend-addresses=192.168.0.1 #指定后端主master写入数据
proxy-lua-script=/usr/local/mysql-proxy/lua/rw-splitting.lua #指定读写分离配置文件位置
admin-lua-script=/usr/local/mysql-proxy/lua/admin-sql.lua #指定管理脚本
log-file=/usr/local/mysql-proxy/logs/mysql-proxy.log #日志位置
log-level=info #定义log日志级别,由高到低分别有(error|warning|info|message|debug)
daemon=true #以守护进程方式运行
keepalive=true #mysql-proxy崩溃时,尝试重启
chmod 660 /etc/mysql-porxy.cnf
3、修改读写分离配置文件
vi /usr/local/mysql-proxy/lua/rw-splitting.lua
if not proxy.global.config.rwsplit then
proxy.global.config.rwsplit = {
min_idle_connections = 1, #默认超过4个连接数时,才开始读写分离,改为1
max_idle_connections = 1, #默认8,改为1
is_debug = false
}
end
4、启动mysql-proxy
/usr/local/mysql-proxy/bin/mysql-proxy --defaults-file=/etc/mysql-proxy.cnf
netstat -tupln | grep 4000 #已经启动
tcp 0 0 192.168.0.3:4000 0.0.0.0:* LISTEN 6666/mysql-proxy
关闭mysql-proxy使用:killall -9 mysql-proxy
5、测试读写分离
主服务器创建proxy用户用于mysql-proxy,从服务器会同步
grant all on *.* to 'proxy'@'192.168.0.3' identified by 'xxx';
使用客户端连接mysql-proxy
mysql -u proxy -h 192.168.0.3 -P 4000 -p
详细测试可以自己做一些
参考文章
http://www.cnblogs.com/luckcs/articles/2543607.html
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。