由于工作需要,要将mysql主从数据库读写分离,采取官方mysql-proxy代理程序来实现.在安装时遇到一些问题,多谢深夜的蚊子帮助。
环境:
OS:Centos 5.3
software:
lua-5.1.4.tar.gz
mysql-proxy-0.6.1.tar
mysql-devel.i386
libevent-devel.i386

1、lua安装

lua下载地址可到官方网站下载:http://www.lua.org/ftp/

tar zxvf lua-5.1.4.tar.gz
cd lua-5.1.4
make linux
make install

2、mysql-proxy 安装


export LUA_LIBS="-L/usr/local/lib/lua/5.1/ -llua -lm"
export LUA_CFLAGS=" "

yum install mysql-devel.i386       #安装mysql开发包,不然在编译mysql-proxy时会出错
yum install libevent-devel.i386  #安装libevent开发包

./configure --prefix=/usr/local/mysql-proxy LDFLAGS="-ldl"
make
make install

3、使用

export PATH=$PATH:/usr/local/mysql-proxy/sbin/
启动参数

mysql-proxy --proxy-read-only-backend-addresses=192.168.1.11:3306 --proxy-backend-addresses=192.168.1.12:3306 --proxy-lua-script=/usr/local/mysql-proxy/share/mysql-proxy/rw-splitting.lua&

参数说明:
--proxy-read-only-backend-addresses -- remote slave-server(只读服务器)
--proxy-backend-addresses     -- master-server(写服务器)
--proxy-lua-script            -- lua script(读写分离脚本) 

mysql-proxy 启动成功,使用nestat -ntl查看本机端口,将会出现4040与4041这个TCP端口。4040是mysql-proxy连接端口,4041为mysql-proxy管理端口

[root@ mysql]# netstat -ntl                 
tcp                0            0 0.0.0.0:4040                                0.0.0.0:*                                     LISTEN            
tcp                0            0 0.0.0.0:4041                                0.0.0.
0:*                                     LISTEN    

使用mysql-proxy --help-all 可查看mysql-proxy的具体参数

4、读写分离测试
由于rw-splitting.lu脚本默认是4个连接,在大于4个mysql连接才能实现读写分离,在测试的时候最好修改一下连接
                min_idle_connections  = 1,  
                max_idle_connections = 1,
使用3个mysql客户端连接mysql-proxy服务器的4040端口,比如:
mysql -h192.168.1.13 -utest -ptest -P4040

先在mysql从数据库使用stop slave停止从服务器同步,然后在主数据库上插入一条数据,这时在使用mysql-proxy查询到的数据是从数据库上的数据,说明mysql-proxy读写分离成功。