为了玩下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上则没有新增数据;