详解MySQL Proxy Lua安装和测试教程

移动开发 iOS
MySQL Proxy就是一个连接池,负责将前台应用的连接请求转发给后台的数据库,并且通过使用lua脚本,可以实现复杂的连接控制和过滤,从而实现读写分离和负载平衡。

MySQL Proxy Lua的安装和测试是本文要介绍的内容,关于MySQL Proxy它是一个处于你的client端和MySQL server端之间的简单程序,它可以监测、分析或改变它们的通信。它使用灵活,没有限制,常见的用途包括:负载平衡,故障、查询分析,查询过滤和修改等等。

MySQL Proxy就是这么一个中间层代理,简单的说,MySQL Proxy就是一个连接池,负责将前台应用的连接请求转发给后台的数据库,并且通过使用lua脚本,可以实现复杂的连接控制和过滤,从而实现读写分离和负载平衡。对于应用来说,MySQL Proxy是完全透明的,应用则只需要连接到MySQL Proxy的监听端口即可。当然,这样proxy机器可能成为单点失效,但完全可以使用多个proxy机器做为冗余,在应用服务器的连接池配置中配置到多个proxy的连接参数即可。

MySQL Proxy更强大的一项功能是实现“读写分离”,基本原理是让主数据库处理事务性查询,让从库处理SELECT查询。数据库复制被用来把事务性查询导致的变更同步到集群中的从库。

以上摘自百度百科

 我看重的功能 是负载均衡,故障转移,通过和MySQL 主从复制配合(MASTER ,SLAVE ),还可以实现 ‘读写分离’.

一、安装

参考网上一堆资料,使用源码安装还是失败。以后有时间再研究。转向使用二进制安装,内已包含LUA5.1等

操作系统为CentOS 5.5 32位,从官网下载MySQL Proxy  0.8.2

下载地址为:

  1.  # wget -c http://dev.mysql.com/get/Downloads/MySQL-Proxy/mysql-proxy-0.8.2-linux-rhel5-x86-32bit.tar.gz/
  2. from/ftp://ftp.stu.edu.tw/pub/Unix/Database/Mysql/  
  3. # tar mysql-proxy-0.8.2-linux-rhel5-x86-32bit.tar.gz -C /usr/local  
  4. # mv  mysql-proxy-0.8.2-linux-rhel5-x86-32bit   mysql-proxy 

增加路径

  1.  #vim ~/.bash_profile  
  2. PATH=$PATH:$HOME/bin:/usr/local/mysql-proxy/bin  
  3. export PATH 

二、配置

下载写好的服务脚本:

  1. #wget -c http://customcode.googlecode.com/files/mysql-proxy  
  2. # cp mysql-proxy   /etc/init.d/mysql-proxy 

修改

  1. # vim /etc/init.d/mysql-proxy  
  2. PROXY_PATH=/usr/local/mysql-proxy/bin 

改成unix模式

  1. :set fileformat=unix 
  2. # chmod 755 /etc/init.d/mysql-proxy    
  3. # chkconfig mysql-proxy on   

修改配置文件

  1. # vi /etc/sysconfig/mysql-proxy    
  2. # options to mysql-proxy   
  3. # do not remove --daemon   
  4. PROXY_OPTIONS="--proxy-backend-addresses=192.168.234.133:3306 --proxy-backend-addresses=192.168.234.132:3306  --daemon" 

其它配置参考官网文档

  1. http://dev.mysql.com/doc/refman/5.1/en/mysql-proxy-configuration.html 

两台mysql上赋权

  1. grant all on *.* to "root" @ "192.168.234.131";  
  2. flush privileges; 

启动服务

  1. service mysql-proxy start 

三、测试

(1)负载均衡 /etc/sysconfig/mysql-proxy  配置为

  1. PROXY_OPTIONS="--proxy-backend-addresses=192.168.234.133:3306 --proxy-backend-addresses=192.168.234.132:3306  --daemon" 

数据库服务器建同一张表t1 表中,数据不同,

  1. use test;  
  2. CREATE TABLE `t1` (  
  3.  `iCode` int(11) NOT NULL AUTO_INCREMENT,  
  4.   `name` varchar(50) DEFAULT NULL,  
  5.     PRIMARY KEY (`iCode`)  
  6. );  
  7. 132  
  8. insert into t1 (name) values ('master');  
  9. 133  
  10. insert into t1 (name) values ('slave'); 

打开多个窗口,运行

  1. mysql -h 192.168.234.131 -u  -p -P 4042 -e"select  name from test.t1;" 

可看到不同结果,mysql-prxoy 会将查询分配到mysql服务器

(2)故障转移

采用1的配置,在132上停止mysql

  1. service mysqld stop 

运行:

  1. mysql -h 192.168.234.131 -u  -p -P 4042 -e"select  name from test.t1;" 

仍能正常查询,只有133MySQL上数据。

(3)读写分离

读写分离需依赖LUA脚本,配置文件改为:

  1. PROXY_OPTIONS="--proxy-backend-addresses=192.168.234.133:3306 --proxy-read-only-backend-addresses=192.168.234.132:3306 \  
  2.  
  3. --proxy-lua-script=/usr/local/mysql-proxy/share/doc/mysql-proxy/rw-splitting.lua  --keepalive  --daemon" 

133为可写,132 为只读,使用rw-splitting.lua为读写分离脚本

还需配置Master(133)-Slave(132) 复制。

小结:详解MySQL Proxy Lua安装和测试教程的内容介绍完了,希望通过本文的学习能对你有所帮助!

责任编辑:zhaolei 来源: CSDN博客
相关推荐

2011-08-30 10:28:11

MySQL ProxyLUA

2011-08-30 10:08:38

Centos 5.2Mysql ProxyLUA

2011-08-30 10:36:31

Ubuntu 9.04Mysql ProxyLua

2011-08-30 12:49:59

Mysql ProxyLua分离

2009-07-06 10:22:26

Web网站压力测试

2011-08-30 11:00:10

MySQL ProxyLua

2011-08-24 11:03:33

LUA环境 安装

2009-08-27 14:09:09

布线测试跳线测试串扰测试

2011-08-30 13:26:18

Mysql ProxyLua

2011-08-03 11:17:50

iOS程序 测试

2011-08-30 09:59:47

Mysql ProxyLUA

2011-09-01 17:46:22

MySQL ProxyLua脚本

2023-07-17 13:57:05

2023-03-17 16:32:51

测试软件开发

2011-08-30 09:47:00

Linux5u3luaMySQL Proxy

2023-06-05 07:49:13

​左移测试敏捷

2023-03-10 15:11:24

2011-08-23 18:00:00

lua 脚本测试C

2011-08-25 13:44:11

LUA下载SciTE

2011-08-25 15:41:42

Lua源码
点赞
收藏

51CTO技术栈公众号