我试图配置mysql-proxy 0.8.2
. 后面有两个主机:M1
(10.10.10.1)和M2
(10.10.10.2)。
M1
和之间有一个 MySQL 复制M2
。M1
是主人,M2
是奴隶。所有请求什么类型是“写入”,正确转发到 M1 并立即将此记录从 复制M1
到M2
。
但是如果请求类型是“读”,代理不能转发到M2
,只能转发到M1
。我检查了这些数据包tcpdump
,我看到每个数据包都收到了M1
。从代理到 MySQL 服务器的连接使用 telnet 和 MySQL 命令完美检查。
当我关闭M1
服务器时,所有请求(读/写)都发送到另一个(M2
)服务器。M1
服务器关闭后,运行M2
良好。每条记录都可用。
我不明白为什么在可用时mysql-proxy
也不将读取的数据包转发到。问题是什么?或者这就是它正常运行的方式?M2
M1
这是我的配置:
[mysql-proxy]
daemon = true
user = mysql
proxy-skip-profiling = true
keepalive = true
max-open-files = 2048
event-threads = 50
pid-file = /var/run/mysql-proxy.pid
log-file = /var/log/mysql-proxy.log
log-level = debug
admin-address = 10.10.10.5:4401
admin-username = admin
admin-password = xxxxxxx
proxy-address = 0.0.0.0:3307
proxy-read-only-backend-addresses = 10.10.10.2:3306
proxy-backend-addresses = 10.10.10.1:3306
plugin-dir=/usr/local/lib/mysql-proxy/plugins
plugins=proxy,admin,debug,replicant
LUA_PATH = /usr/lib/mysql-proxy/lua/proxy/?.lua
LUA_CPATH = /usr/lib/mysql-proxy/lua/?.so
admin-lua-script=/opt/mysql-proxy-0.8.2/admin.lua
proxy-lua-script=/usr/local/lib/mysql-proxy/lua/proxy/rw-splitting.lua
proxy-lua-script=/usr/local/lib/mysql-proxy/lua/proxy/balance.lua
proxy-lua-script=/opt/mysql-proxy-0.8.2/riporter.lua