MySQL代理负载平衡器问题

MySQL代理负载平衡器问题,mysql,mysql-proxy,Mysql,Mysql Proxy,我试图配置。它后面有两台主机:M1(10.10.10.1)和M2(10.10.10.2) 在M1和M2之间存在MySQL复制M1为主,M2从。所有请求类型为“写入”,正确转发到M1,并立即将此记录从M1复制到M2 但如果请求类型为“read”,则代理不能转发到M2,只能转发到M1。我用tcpdump检查了这些数据包,发现在M1上收到的每个数据包。通过telnet&MySQL命令,从代理服务器到MySQL服务器的连接工作正常 当我关闭M1服务器时,所有请求(读/写)都发送到另一台(M2)服务器。M

我试图配置。它后面有两台主机:
M1
(10.10.10.1)和
M2
(10.10.10.2)

M1
M2
之间存在MySQL复制<代码>M1为主,M2从。所有请求类型为“写入”,正确转发到M1,并立即将此记录从
M1
复制到
M2

但如果请求类型为“read”,则代理不能转发到
M2
,只能转发到
M1
。我用
tcpdump
检查了这些数据包,发现在
M1
上收到的每个数据包。通过telnet&MySQL命令,从代理服务器到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

在过去,该选项存在一些问题,但在您使用的版本中没有

--代理只读后端地址
不会导致代理将读取请求转发到该选项上指定的后端

为此,您需要更改读取只读后端地址选项的lua脚本(或编写一个新脚本),并定义所需的行为

你可以阅读更多关于这方面的内容


希望这能给你一些进一步研究的线索。

好问题。我也从来没有听说过MySQL代理,所以更好。但这个问题更多的是服务器问题,所以它属于服务器故障或数据库管理员堆栈Exchange站点。