mysqlplus лучший адаптер, чем ruby ​​mysql? - PullRequest
3 голосов
/ 03 декабря 2009

Я хочу знать, является ли гем mysqlplus лучшим драйвером для базы данных, чем обычный Ruby mysql гем? Раньше у меня были некоторые проблемы в приложении Rails, например: ActiveRecord :: StatementInvalid: Mysql :: Ошибка: сервер MySQL пропал

Ответы [ 3 ]

1 голос
/ 11 мая 2010

Если вы хотите проверять только ошибки «сервер mysql пропал», тогда activerecord более чем достаточно.это зрелая кодовая база, достаточно подходящая для большинства случаев использования.

оформить заказ http://blog.new -bamboo.co.uk / 2010/4/11 / автоматическое переподключение-mysql-подключений-в-активных-запись для более подробной информации.

mysqlplus лучше, когда вам нужно параллелизм , все классные парни рекомендуют его :-), но я не уверен, готов ли он к производству.

1 голос
/ 03 декабря 2009

MySQL server has gone away означает, что на сервере mysql произошел сбой при выполнении вашего запроса, или (чаще) вы отправили ему запрос, размер которого превышает max_allowed_packet. см http://dev.mysql.com/doc/refman/5.1/en/packet-too-large.html

0 голосов
/ 11 мая 2010

mysql собирает соединения после периода бездействия. это определено в 'wait_timeout'.
Это можно увидеть в MySQL по:
mysql> показывать переменные типа 'wait_timeout'

по умолчанию это 8 часов. вы получаете эту ошибку, поскольку вы установили соединение, и за этот период не было выполнено ни одного запроса.

Activerecord имеет ActiveRecord :: Base # verify_active_connections! для этого варианта использования. если вы укажетеReconnect: true в database.yml, он сделает это автоматически.

Вышеуказанный метод выполняется, когда мы извлекаем соединение из пула соединений, он защищает от неактивности.

Это не поможет вам, если вы выполняете длительный запрос, и он превышает период wait_timeout . Тогда вам, возможно, придется увеличить переменную timeout в mysql. Вы также можете попробовать установить патч в: http://gist.github.com/238999 Это будет повторять запрос при такой ошибке, возможно, изменились обстоятельства, но исправление не является надежным, поскольку не имеет счетчика повторов.

...