【问题标题】:MySQL Error 2006: MySQL Server has gone away while executing cron jobMySQL 错误 2006:执行 cron 作业时 MySQL 服务器已消失
【发布时间】:2012-12-10 05:00:56
【问题描述】:

我知道当服务器重新启动或带宽问题时会发生此错误。但是我们有无限的带宽,服务器不会重新启动。我无法追踪为什么会出现此错误。

仅当我在服务器上运行 cron 作业时才会出现此错误。我每 10 分钟设置一次 cron 作业,以执行少量计算和更新表格。

protocol_version : 10
version : 5.1.65-cll
version_comment : MySQL Community Server (GPL)
version_compile_machine : x86_64
version_compile_os : unknown-linux-gnu

请帮忙。

【问题讨论】:

  • 类似问题在这里:stackoverflow.com/questions/7942154/…
  • 如果 MySQL 服务器、进程或线程异常终止,也会发生这种情况。您正在运行什么 SQL,您使用的是什么 MySQL 版本?请具体一点。
  • protocol_version:10, version: 5.1.65-cll, version_comment: MySQL Community Server (GPL), version_compile_machine: x86_64 and version_compile_os: unknown-linux-gnu。

标签: php mysql mysql-error-2006


【解决方案1】:

我遇到了类似情况的 cron 作业,该作业需要一段时间才能运行(每晚运行,更新报告表)。解决方法是增加 my.conf 文件中的 mysql.connect_timeout 和 default_socket_timeout。或者,如果您不能/不想在服务器范围内更改它,您可以使用 ini_set 在脚本级别设置这些值。

另请参阅此 SO 帖子,因为它处理完全相同的事情:

https://stackoverflow.com/a/1644572/1867941

【讨论】:

    【解决方案2】:

    为防止出现此类问题,您应该在运行每个查询之前创建一个持久连接并检查该连接是否存在(并重新连接)。

    【讨论】:

    • 我正在运行 13 个更新查询。每次检查连接是否存在好?不会有性能下降吗?
    【解决方案3】:

    实际问题在于我执行的查询数。每 10 分钟执行大约 50000 个查询,因此服务器正在关闭。我已经减少了限制和时间间隔,现在可以正常工作了。

    谢谢你的回答,对我也很有帮助。

    【讨论】:

      猜你喜欢
      • 2013-08-31
      • 2012-06-28
      • 2011-12-18
      • 2012-05-15
      • 2012-02-03
      相关资源
      最近更新 更多