体验mysql-proxy

体验mysql-proxy

上周就看到了mysql-proxy出来的消息,今天下午才抽空体验了一下

1. 编译-安装

http://forge.mysql.com/wiki/MySQL_Proxy下载mysql-proxy的代码,

./configure报错,找不到lua包,然后下lua包,再./confgure,又报

错,找不到glib,再去下glib,这次ok了,make下来生成了一个

mysql-proxy的可执行文件,执行一下./mysql-proxy --help有help信息

输出,这一步搞定,看了一下文档,依赖的包:

libevent   lua glib mysqlclient

2. 运行,配置

主页上有个getting started,粗看了一遍,没有配置文件,就一个mysql

-proxy可执行文件加上执行参数(比较爽),

主要的执行参数:
   --admin-address=    admin server的ip:port,admin server是

一个伪代理,可以用mysql客户端连过来,但只支持一些特殊的查看proxy

状态的一些指令
   --proxy-address=      代理的ip:port,默认是0.0.0.0:4040
   --proxy-read-only-address=      代理的只读连接ip:port 默认0.0.0.0:4042(试了一下好像没有作用)
   --proxy-backend-addresses=      db server的地址,默认是127.0.0.1:3306,可以指定多个来做failover和load balance
   --proxy-profiling                        enable profiling of queries (没试)
   --proxy-fix-bug-25371                    fix bug #25371 (mysqld > 5.1.12) for older libmysql versions (没试)
   --proxy-lua-script=                lua脚本文件

运行./mysql-proxy --admin-address=127.0.0.1:4041 &,这样代理服务器运行在4040端口,admin服务器在

127.0.0.1:4041,转发db server为127.0.0.1:3306,没有lua-script

然后运行mysql --host 127.0.0.1 --port 4040

show database; use mysql; select user,代理工作正常。

3. 持续工作

-学习lua脚本

-测试多个backend时候的failover 和load balance的行为

-如何使用lua来实现后端多个切分的数据库对前端client的透明(用proxy的主要目的)

-如何达到client-proxy大量连接 proxy-db少量连接,来增加db的并发能力,目前看

好像是client-proxy-db一对一连接的方式
呵呵,mysql确实不错,小巧灵活,很好用