MySQL 服务器已经消失 haProxy 不断出现错误

MySQL Server has gone away Error constantly appearing with haProxy

我经常收到这条消息。 到目前为止,我查看了几个解决方案,但还没有找到解决这个问题的方法。 但首先这是我的设置:

我使用 PHP7 环境,出于可扩展性原因,该环境被分成不同的元素。

1 个 NGINX 网络服务器
2-n 应用程序服务器使用 PHP7-FPM 和 haproxy & memcache
配置了画廊集群的 2-n 数据库服务器
1 个带有 PHP7-CLI 和 haproxy
的作业服务器 1 台用于应用程序分发 (nfs) 和系统维护的登录服务器

登录服务器也是开发者的主要登录

我的问题是,我偶尔会收到以下消息:

Warning: PDOStatement::execute(): MySQL server has gone away

在任何一个应用服务器上重新启动 haproxy 后,它再次运行 3-10 次页面浏览。 但是之后我又收到了同样的信息。

请帮我找出错误。

这是我的 haproxy 配置:

global
    log 127.0.0.1 local0 notice
    user haproxy
    group haproxy

defaults
    log global
    retries 2
    timeout connect 10000
    timeout server 10000
    timeout client 10000


listen mysql-cluster
    log global
    timeout connect 10000
    timeout server 10000
    timeout client 10000
    bind 127.0.0.1:3306
    mode tcp
    option mysql-check user proxy
    balance roundrobin
    server db1  1.1.1.1:3306 check
    server db2  1.1.1.2:3306 check

经过一段时间的研究和测试,我找到了问题的核心原因。

首先,代理用户的权限没有反映到第二台服务器上。 我在写入功能方面遇到了一些问题。 所以我在3307端口又加了一个Connection,负责写。 为了保持集群理念,我将主数据库设置在连接一上,如果其他连接失败,则将其他连接设置为备份。

我按照

上的文章设置了一切

http://severalnines.com/tutorials/mysql-load-balancing-haproxy-tutorial

感谢看到这篇文章给我打电话的人的帮助post :)

只需调整您的超时设置

服务器超时10m 超时客户端 10m