首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MySQL-代理和基本故障转移(检测状态)

MySQL-代理和基本故障转移(检测状态)
EN

Stack Overflow用户
提问于 2012-02-16 20:19:22
回答 1查看 2K关注 0票数 0

我刚刚安装了mysql proxy 0.8.2,并开始使用它。我将它与两个MySQL 5.5服务器一起使用,监听3306,代理在4040上运行。哦,而且操作系统是Win 7 32位。

我的问题是,mysql代理检查服务器的状态似乎不应该这样做。

我启动了脚本,它可以正常运行。但当我关闭主服务器时,脚本似乎无法识别这一点-它仍然试图连接到它……

版本信息

代码语言:javascript
复制
mysql-proxy 0.8.2
chassis: mysql-proxy 0.8.2
glib2: 2.16.6
libevent: 1.4.12-stable
LUA: Lua 5.1.2
package.path: C:\ProgramX86\dev\mysql-proxy\lib\mysql-proxy\lua\?.lua
package.cpath: C:\ProgramX86\dev\mysql-proxy\bin\lua-?.dll
-- modules
proxy: 0.8.2*

我的配置

代码语言:javascript
复制
[mysql-proxy]
proxy-address = :4040
proxy-backend-addresses = 10.3.0.9:3306,192.168.4.100:3306
proxy-lua-script = C:/ProgramX86/dev/mysql-proxy/failover3.lua
daemon = true

故障切换lua脚本

代码语言:javascript
复制
function connect_server()
    if proxy.global.backends[1].state == proxy.BACKEND_STATE_DOWN then
        proxy.connection.backend_ndx = 2
    else
        proxy.connection.backend_ndx = 1
    end
    print ("s Connecting: " .. proxy.global.backends[proxy.connection.backend_ndx].dst.name)
end 

function read_query(packet)
    if proxy.global.backends[1].state == proxy.BACKEND_STATE_DOWN then
        proxy.connection.backend_ndx = 2
    else
        proxy.connection.backend_ndx = 1
    end
    print ("q Connecting: " .. proxy.global.backends[proxy.connection.backend_ndx].dst.name)
end
EN

回答 1

Stack Overflow用户

发布于 2012-03-14 17:25:28

这是因为当主服务器关闭时,proxy.global.backends[1].state仍然是proxy.BACKEND_STATE_UP。有人说,等待后台响应需要3分钟,而不是一直在看Mysql服务。我正在试着找一个更好的方法来解决这个问题。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9311160

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档