У меня проблемы с обновлением рельсов 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 ), но не решение.
Спасибо за вашу помощь.