MySQL2 Gem:查询期间与MySQL服务器的连接丢失

时间:2013-11-03 11:17:03

标签: mysql ruby mysql2

我遇到以下异常:

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的CPU使用率持续在40%以上

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

1 个答案:

答案 0 :(得分:0)

你在Rails上使用ActiveRecord / Ruby吗?

此错误消息有几个原因,有些建议调整MySQL设置,如超时等 - 但有一个原因可能是由R​​ails特别引起的,那就是ActiveRecord连接收割机(通过设置{{启用) 1}}配置为非零)。如果启用,它似乎随机杀死更长时间运行的查询。见https://stackoverflow.com/a/22423893/72176

在调整了几乎所有MySQL设置后,我发现它似乎与这个问题有一半关系,它正在禁用为我修复它的连接收割机。