第二天测试结果
配置文件为mysql-proxy.cnf
[mysql-proxy]
daemon = true
log-file = /usr/local/mysql-proxy/mysqlproxy.log
proxy-address=192.168.3.105:4040
proxy-read-only-backend-addresses=192.168.3.104:3306
proxy-backend-addresses=192.168.3.100:3306
admin-lua-script=/usr/local/mysql-proxy/share/doc/mysql-proxy/admin-sql.lua
admin-username= root
admin-password=
proxy-lua-script=/usr/local/mysql-proxy/share/doc/mysql-proxy/rw-splitting.lua
当有一主一从2台服务器时,关掉其中任意一个服务器,在进行select查询时,mysql-proxy会优先查询只读服务器,如果只读服务器全部挂掉的话,mysql-proxy紧接着就会查询主服务器!反之,如果主服务器挂掉,mysql-proxy查询数据时就会从只读服务器上查找数据!
当配置成只有2台主服务器时:
[mysql-proxy]
daemon = true
log-file = /usr/local/mysql-proxy/mysqlproxy.log
proxy-address=192.168.3.105:4040
proxy-backend-addresses=192.168.3.104:3306(slave 变为 master)
proxy-backend-addresses=192.168.3.100:3306
admin-lua-script=/usr/local/mysql-proxy/share/doc/mysql-proxy/admin-sql.lua
admin-username= root
admin-password=
proxy-lua-script=/usr/local/mysql-proxy/share/doc/mysql-proxy/rw-splitting.lua
#ps -ef | grep mysql-proxy
#kill mysql-proxy的PID
然后重启mysql-proxy
# /usr/local/mysql-proxy/bin/mysql-proxy --defaults-file=/usr/local/mysql-proxy/mysql-proxy.cnf &
关掉2台主服务器中的任意一台服务器,打开新的客户端
#mysql -uroot -P4040 -p -h192.168.3.105
就会提示 ERROR 1105 (HY000): (proxy) all backends are down
为什么不能关掉其中一台主服务器呢。。。奇怪。。。继续研究!