Mysql2 Ошибка MySQL сервер ушел - PullRequest
12 голосов
/ 24 июля 2011

Я иногда получаю эту ошибку. Я прочитал некоторые решения в stackoverflow, но они были о рельсах 2 или MySQL. Любая помощь будет оценена.

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

Ответы [ 4 ]

6 голосов
/ 01 августа 2011

Есть множество причин для ошибки.Смотрите ниже страницу для возможных причин.Возможно, размер вашего пакета слишком мал.

http://dev.mysql.com/doc/refman/5.0/en/gone-away.html

2 голосов
/ 23 декабря 2013

Я получил эту ошибку при попытке импортировать большой файл через seeds.rb с rake db:seed, вызвав одно утверждение:

ActiveRecord::Base.connection.execute(IO.read("path/to/file.sql"))

И я продолжал получать ActiveRecord::StatementInvalid (Mysql2::Error: MySQL server has gone away...


РЕШЕНИЕ

Я решил это с помощью комбинации двух вещей:

  1. Добавьте reconnect: true к спецификации базы данных в database.yml
  2. Прочитайте файл SQL и выполните инструкцию по отдельности, например:

    f = File.new('path/to/file.sql')
    
    while statements = f.gets("") do
      ActiveRecord::Base.connection.execute(statements)
    end  
    

Мне пришлось изменить, чтобы удалить некоторые комментарии из моего файла SQL - они сделалиActiveRecord по какой-то причине выбрасывает ошибки, но это решило мою проблему.

1 голос
/ 20 апреля 2012

У меня точно такая же проблема, когда я запускаю команду "rake db: reset" в моей среде разработки. Но я никогда не вижу этого сообщения об ошибке, когда я запускаю "rake db: migrate: reset && rake db: seed".

Хотя это очень странно, но это может пролить свет на эту проблему. Я рад, если мой пост приводит к как-то решению.

0 голосов
/ 24 июля 2011

Возможно, сервер, на котором вы размещены, перегружен, и в некоторых случаях сервер MySQL не может выполнить запрос. Спросите у своего хостинг-провайдера о средствах мониторинга производительности или расскажите ему об этой проблеме напрямую. Этого сообщения об ошибке должно быть достаточно, чтобы дать вам ответ.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...