首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >错误2006 (HY000):MySQL服务器已经消失.(HaProxy / Galera)

错误2006 (HY000):MySQL服务器已经消失.(HaProxy / Galera)
EN

Server Fault用户
提问于 2015-10-20 22:30:57
回答 2查看 7.5K关注 0票数 6

我在一个多主机设置中设置了一个由3台MariaDB服务器组成的集群,运行良好。我为HaProxy添加了第4台服务器,用于负载平衡和循环,这样我们就可以有一些冗余,这也是工作的,除了一个问题。

我登录到运行以下查询的MySQL服务器上的HaProxy客户端:

代码语言:javascript
运行
复制
show variables like 'server_id';

我正在获得结果,但如果我等待5秒或更长时间,然后再次运行查询,则会得到以下错误:

代码语言:javascript
运行
复制
ERROR 2006 (HY000): MySQL server has gone away
No connection. Trying to reconnect...
Connection id:    52
Current database: *** NONE ***

在那之后,我得到了一个不同的server_id的结果,这表明负载平衡是有效的。这导致的问题是,当我尝试从Spring/Java应用程序连接时,我可以在很短的时间内运行查询,连接就会下降。我想,如果我能在HaProxy服务器上解决它,那将解决我正在处理的其他问题。

编辑:添加了HAPROXY.CFG

代码语言:javascript
运行
复制
global
    log 127.0.0.1 local0 notice
    chroot /var/lib/haproxy
    pidfile /var/run/haproxy.pid
    user haproxy
    group haproxy
    maxconn 4096
    daemon

defaults
    log global
    retries 2
    timeout connect 3000
    timeout server 5000
    timeout client 5000

listen mysql-cluster
    bind 0.0.0.0:3306
    mode tcp
    option tcpka
    option mysql-check user haproxy_check
    balance roundrobin
    server mysql-1 192.168.10.241:3306 check inter 1000 rise 3 fall 1
    server mysql-2 192.168.10.242:3306 check inter 1000 rise 3 fall 1
    server mysql-3 192.168.10.243:3306 check inter 1000 rise 3 fall 1

listen stats
    bind 192.168.10.211:8080
    mode http
    stats enable
    stats uri /
    stats realm Strictly\ Private
    stats auth USER:PASSWORD
EN

回答 2

Server Fault用户

回答已采纳

发布于 2015-10-21 13:40:55

对于空闲的长时间运行会话,比如在命令行上运行mysql,您的timeout clienttimeout server太短了。

对于访问DB的web服务器来说,它们可能是可以的,因为连接只在需要时才会打开,而且每次加载页面都会创建一个新的连接。

若要允许连接保持10分钟的打开,请更改

代码语言:javascript
运行
复制
timeout server 5000
timeout client 5000

代码语言:javascript
运行
复制
timeout server 10m
timeout client 10m

如果你愿意,你可以走得更高。我有RDS集群,它有一个7个小时的超时时间,它工作得很好。

这些文档有更多关于超时客户端超时服务器和用于时间说明符的短手操作的详细信息。

票数 11
EN

Server Fault用户

发布于 2015-10-21 00:21:06

尝试在max_allowed_packet中配置mariaDB。这里有一个相对的链接,可以解决您的问题。

代码语言:javascript
运行
复制
http://stackoverflow.com/questions/10474922/error-2006-hy000-mysql-server-has-gone-away
票数 -2
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/730403

复制
相关文章

相似问题

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