Ошибка Rails 3.1 / mysql2: «Сервер MySQL ушел»

У меня проблемы с обновлением рельсов 2.3.14 / ruby ​​1.8.7 app до версии 3.1.1 / 1.9.2: у меня спорадически возникают

(ActiveRecord::StatementInvalid) "Mysql2::Error: MySQL server has gone away"

ошибок. Важно уточнить, что у меня никогда не было таких проблем с гемом mysql на 2.3.14 и точно такой же db (так что ошибка не должна исходить от mysql (v5.5.10)).

Пример:

$ rails c production
Loading production environment (Rails 3.1.1)
ruby-1.9.2-p290 :001 > ActiveRecord::Base.connection.active?
 => false
ruby-1.9.2-p290 :002 > exit
$ rails c production
Loading production environment (Rails 3.1.1)
ruby-1.9.2-p290 :001 > ActiveRecord::Base.connection.active?
 => true 

Это происходит только с моей (удаленной) производственной базой данных, никаких проблем с моей локальной базой данных разработки. Я пытался установить "reconnect: true" в моем database.yml, но это привело к

Mysql2::Error: Host '****' is blocked because of many connection errors; unblock with 'mysqladmin flush-hosts':...

. Я попытался изолировать проблему с помощью небольшого rb-скрипта, загружающего только mysql2 и activerecord, но мне не удалось воспроизвести ошибка таким образом (так что она может быть связана со стеком рельсов).

Я не могу вернуться от mysql2 к гему mysql из-за проблем с кодировкой ( http://www.rorra.com.ar/2010/07/30/rails-3- mysql-and-utf-8 / ). Как следствие, мне пришлось откатить свою продукцию к моему приложению rails 2.3.14, что меня очень огорчает ...

Вы видите, что я могу сделать, чтобы отладить это? Я даже не могу найти верный способ воспроизвести ошибку ... Встречался ли кто-нибудь с такой же ошибкой?

Я только что нашел несколько людей, упоминающих об этой ошибке (например: https://github.com/brianmario/ mysql2 / issues / 213 ), но не решение.

Спасибо за вашу помощь.

7
задан Flackou 22 December 2011 в 22:29
поделиться