前言
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.gztar zxvf mysql-proxy-0.8.5-linux-glibc2.3-x86-64bit.tar.gzmv 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和端口,不加端口,默认4040proxy-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.luaif 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.cnfnetstat -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-proxymysql -u proxy -h 192.168.0.3 -P 4000 -p详细测试可以自己做一些
参考文章
http://www.cnblogs.com/luckcs/articles/2543607.html