为了玩下mysql-proxy实现mysql读写分离:

准备了几台服务器:

服务器A:ubuntu 192.168.1.4 (mysql 5.5 master)

服务器B:ubuntu 192.168.1.2 (mysql 5.5 slave)

服务器C:windows 7 192.168.1.3 (mysql 5.5 slave)

目标,将这些mysql服务器配置成读写分离,其中A用来写,BC用来读.

mysql-proxy能很好的实现读写分离,但是为了数据同步,必须将读和写的mysql配置成master-slave结构,当然写的作为master,读的都作为slave,至于如何配置master-slave可以看我转载的文章。

首先在ubuntu上可以通过apt-get,安装mysql-proxy,命令:apt-get install mysql-proxy(这里我将A作为mysql-Proxy主机)

另外需要注意一点的是,所有mysql的用户名密码最好有个通用的账号,这些账号供proxy来访问,这里我采用root,密码都是123

而后修改默认连接,进行快速测试,不修改的话要等达到连接数时才读写分离 

 

 

vim /usr/share/mysql-proxy/rw-splitting.lua 

proxy.global.config.rwsplit = { 

   min_idle_connections = 1,        #默认是4 

   max_idle_connections = 1,        #默认是8

   is_debug = false 

}

而后在192.168.1.4上执行:

mysql-proxy --proxy-read-only-backend-addresses=192.168.1.2:3306 --proxy-read-only-backend-addresses=192.168.1.3:3306 --proxy-backend-addresses=192.168.1.4:3306 --admin-lua-script=/usr/share/mysql-proxy/admin.lua --proxy-lua-script=/usr/share/mysql-proxy/rw-splitting.lua --admin-username=root --admin-password=123&

这样mysql-proxy就启动起来了

用 mysql -uroot -p123 -h 192.168.1.4 -P 4040

这样就可以进行mysql通用操作了,

为了验证是否配置成功,可以在slave上执行stop slave;

这样,你用proxy登录后会发现,插入数据只会在配置了写数据库的mysql,slave上则没有新增数据;