1

我遇到以下异常:

in `query': Lost connection to MySQL server during query (Mysql2::Error)

很难复制。当我手动执行相同的 MySQL 命令时,它可能没有任何问题。

我已将其缩小如下:

1.)当我从一个大表中选择很多记录时,我可能会遇到这个异常。例如,我有一个包含 1000 万条记录(和约 50 列)的数据库,当我在一个查询中选择 100k 条记录时出现此错误。

2.) 当我重复 1.) 10 次时,我似乎更有可能得到这个异常,即使我对每个查询都使用新的 MySQL 连接。

我在这里粘贴了我的 MySQL 变量:http: //pastebin.com/D5tfF8Tf

编辑:我注意到 MySQL 一直以约 40% 的 CPU 使用率运行

mysql    22811 40.9  0.3 4281712 244212 ?      Ssl  Oct31 2909:26 /usr/sbin/mysqld
4

1 回答 1

0

你在使用 ActiveRecord / Ruby on Rails 吗?

出现此错误消息有几个原因,有些人建议调整 MySQL 设置,如超时等 - 但有一个原因可能是 Rails 造成的,那就是 ActiveRecord 连接收割器(通过将reaping_frequency配置设置为非零来启用)。如果启用,它似乎会随机终止运行时间较长的查询。见https://stackoverflow.com/a/22423893/72176

在调整了几乎所有我能找到的似乎与此问题相关的 MySQL 设置后,它正在禁用为我修复它的连接收割机。

于 2014-03-15T13:07:23.757 回答