代码之家  ›  专栏  ›  技术社区  ›  Cedd0

MySQL服务器已经消失了

  •  1
  • Cedd0  · 技术社区  · 3 年前

    在我的应用程序中,我遇到了一个问题,在一个相当长的运行事务中,我收到了“MySQL服务器已离开”错误。我知道这已经被问了很多,但我试着通过我的测试来找出所有可能的原因。

    有一件事让我很困惑,那就是MariaDB服务器日志中的错误消息:

    [警告]中断了6到db的连接:“默认”用户:“根”主机:“10.0.0.18”(读取通信数据包时超时)

    这可以解释为什么客户端报告连接断开, 但是 此错误发生在客户端报告“MySQL服务器已离开”错误之前10-15分钟。与此同时,客户机正在愉快地运行insert语句,没有任何问题。但一旦客户机运行select语句,该语句几乎立即失败。

    我已经检查了这些可能的原因:

    1. 服务器一直在运行
    2. 等等,暂停 设置为8小时,这比事务需要失败的时间长得多
    3. 最大允许包数 设置为512M,这应该足够了,因为查询是一个非常短的select语句
    4. 服务器没有耗尽内存

    我很确定这个问题一定与MariaDB日志中的“读取通信包超时”错误有关。但我无法理解为什么客户机仍然可以写数据。既然 等等,暂停 超高。

    一些系统信息:

    • 我正在运行MariaDB 10.5.1
    • 客户端使用python 3.6,数据库连接使用MySQL的mysqlclient

    我希望你们中的一些人知道我应该寻找什么,因为这真的让我发疯。

    0 回复  |  直到 3 年前