【问题标题】:Query causes mysql server to go away查询导致mysql服务器消失
【发布时间】:2010-12-19 06:18:11
【问题描述】:

我们有一个已部署到 50 多个网站的应用程序。在这些站点中,我们注意到了一个奇怪的行为,我们现在已经将其跟踪到一个特定的查询。偶尔,通常一天一到两次,我们的调试脚本报告之一

2006 : MySQL server has gone away

我知道引发此错误的原因有很多,但最奇怪的是,每次引发此错误时,都会发生在运行的同一个 SQL 查询中。这个查询没有什么奇怪或复杂的地方,它看起来像这样:

SELECT `advert_only` FROM `products` WHERE `id` = '6197'

对于各种不同的产品 ID,此查询每天必须运行数万次,因此它肯定不会每次都失败。它在我们 4 台服务器上看似随机的站点上随机失败。似乎没有共同点,但我们注意到的一件小事是,有时会在 1 个特定的人连续 2 或 3 个页面加载时发生,因为我们还会跟踪它发生的人的 IP。

这是在运行 MySQL 5.0.81 的 CentOS 5 服务器上

【问题讨论】:

  • 服务器消失意味着它超时。 ID 字段是否被索引?
  • 是的 id 被索引并且是主键

标签: sql mysql centos


【解决方案1】:

这是在左侧字段中,但您应该检查您的硬盘 SMART 是否有任何错误。如果从“那个”部门读取有问题,则可能存在问题。如果你有一个突袭单位,我不会太担心这个。我不会认为这是问题的可能性很大,但如果你真的被难住了,那可能是值得的。

【讨论】:

    【解决方案2】:

    http://bugs.mysql.com/bug.php?id=1011 上的第二条评论说:“'MySQL 服务器已消失'错误是由比 max_allowed_pa​​cket 更长的查询引起的。”

    这里有更多关于修复它的信息:http://bogdan.org.ua/2008/12/25/how-to-fix-mysql-server-has-gone-away-error-2006.html

    【讨论】:

      【解决方案3】:

      表示sql连接空闲时间过长。检查在您的 sql-query 之前是否执行了一些缓慢的操作。

      【讨论】:

      • 你的意思是什么操作?喜欢慢查询?仅供参考,查询位于被各种其他查询包围的页面中间
      猜你喜欢
      • 1970-01-01
      • 2013-09-07
      • 1970-01-01
      • 2015-03-29
      • 1970-01-01
      • 2013-11-28
      • 2018-08-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多