1

我有一个类似于Resque 中描述的问题正在返回 Mysql2::Error: closed MySQL connection: SHOW FIELDS FROM `users`

就我而言,我在长时间运行的 Rake 任务(3 个多小时)中看到了它。基本上,该任务从 csvs 导入数据运行,然后突然开始吐出“关闭的 MySQL 连接”错误。这只发生在我们使用远程 MySql 的暂存环境中,无法在本地复制。

所以我的问题是,为什么 Rails 应用程序(使用相同的连接属性)可以运行几天而没有问题,但我的数据导入任务在几个小时后就爆炸了?

4

1 回答 1

1

您的连接超时。这在使用 mysql 驱动程序的长时间运行的 rake 任务上总是发生。尝试在你的 database.yml 中设置重新连接标志

http://guides.rubyonrails.org/2_3_release_notes.html#reconnecting-mysql-connections

基本上只需添加:

reconnect: true

我很惊讶这没有更多的记录,因为我一直遇到它。如果这不起作用,请尝试显式调用

ActiveRecord::ConnectionAdapters::ConnectionHandler#verify_active_connections!
于 2012-12-04T15:40:16.127 回答