MySQL-Proxy实现MySQL读写分离提高并发负载

Posted on Posted in mysql
Tips: 本文创建于2016年3月23日,已超过 2 年,内容或图片可能已经失效!

主服务器Master:192.168.0.202
从服务器Slave:192.168.0.203
调度服务器MySQL-Proxy:192.168.0.204

一、主从复制(略)
二、mysql-proxy
1、下载
http://dev.mysql.com/downloads/mysql-proxy/

  1. tar zxvf mysql-proxy-0.8.3-linux-glibc2.3-x86-64bit.tar.gz  
  2. mv mysql-proxy-0.8.3-linux-glibc2.3-x86-64bit /usr/local/mysql-proxy  

2、配置mysql-proxy,创建主配置文件

  1. cd /usr/local/mysql-proxy  
  2. mkdir lua #创建脚本存放目录  
  3. mkdir logs #创建日志目录  
  4. cp share/doc/mysql-proxy/rw-splitting.lua ./lua #复制读写分离配置文件  
  5. cp share/doc/mysql-proxy/admin-sql.lua ./lua #复制管理脚本  
  6. vi /etc/mysql-proxy.cnf   #创建配置文件  
  7. [mysql-proxy]  
  8. user=root #运行mysql-proxy用户  
  9. admin-username=proxy #主从mysql共有的用户  
  10. admin-password=123.com #用户的密码  
  11. proxy-address=192.168.0.204:4000 #mysql-proxy运行ip和端口,不加端口,默认4040  
  12. proxy-read-only-backend-addresses=192.168.0.203 #指定后端从slave读取数据  
  13. proxy-backend-addresses=192.168.0.202 #指定后端主master写入数据  
  14. proxy-lua-script=/usr/local/mysql-proxy/lua/rw-splitting.lua #指定读写分离配置文件位置  
  15. admin-lua-script=/usr/local/mysql-proxy/lua/admin-sql.lua #指定管理脚本  
  16. log-file=/usr/local/mysql-proxy/logs/mysql-proxy.log #日志位置  
  17. log-level=info #定义log日志级别,由高到低分别有(error|warning|info|message|debug)  
  18. daemon=true    #以守护进程方式运行  
  19. keepalive=true #mysql-proxy崩溃时,尝试重启  
  20. 保存退出!  
  21. chmod 660 /etc/mysql-porxy.cnf  

3、修改读写分离配置文件

  1. vi /usr/local/mysql-proxy/lua/rw-splitting.lua  
  2. if not proxy.global.config.rwsplit then  
  3.  proxy.global.config.rwsplit = {  
  4.   min_idle_connections = 1, #默认超过4个连接数时,才开始读写分离,改为1  
  5.   max_idle_connections = 1, #默认8,改为1  
  6.   is_debug = false  
  7.  }  
  8. end  

4、启动mysql-proxy

  1. /usr/local/mysql-proxy/bin/mysql-proxy --defaults-file=/etc/mysql-proxy.cnf  
  2. netstat -tupln | grep 4000 #已经启动  
  3. tcp 0 0 192.168.0.204:4000 0.0.0.0:* LISTEN 1264/mysql-proxy  
  4. 关闭mysql-proxy使用:killall -9 mysql-proxy  

5、测试读写分离

在 主和从 服务器创建proxy用户用于mysql-proxy使用

  1. mysql> grant all on *.* to 'proxy'@'192.168.0.204' identified by '123.com';  

使用客户端连接mysql-proxy

  1. mysql -u proxy -h 192.168.0.204 -P 4000 -p123.com  

转自[MySQL-Proxy][1]

[1]: http://lizhenliang.blog.51cto.com/7876557/1305083

Leave a Reply

Your email address will not be published. Required fields are marked *

19 + 16 =