Недоумение Ошибка Ruby / MySQL: «неверный пакет: несоответствие порядкового номера» - PullRequest
6 голосов
/ 20 января 2011

Я запускаю приложение Rails с MySQL на Heroku, и эта ошибка меня совершенно озадачила.Все работает хорошо, если я пытаюсь выбрать одну строку, часто, если я пытаюсь выбрать несколько.Но если я пытаюсь выбрать * или даже несколько десятков / сотен записей, я получаю следующую ошибку:

ActiveRecord::StatementInvalid: Mysql::ProtocolError: invalid packet: sequence number mismatch(52 != 29(expected)): SELECT  `people`.* FROM `people` LIMIT 30 OFFSET 10
/home/slugs/70bb5dad-9387-46c4-935d-cf74e70276a8/mnt/.bundle/gems/ruby/1.8/gems/activerecord-3.0.3/lib/active_record/connection_adapters/abstract_adapter.rb:202:in `log'
/home/slugs/70bb5dad-9387-46c4-935d-cf74e70276a8/mnt/.bundle/gems/ruby/1.8/gems/activerecord-3.0.3/lib/active_record/connection_adapters/mysql_adapter.rb:289:in `execute'
/home/slugs/70bb5dad-9387-46c4-935d-cf74e70276a8/mnt/.bundle/gems/ruby/1.8/gems/activerecord-3.0.3/lib/active_record/connection_adapters/mysql_adapter.rb:619:in `select'
/home/slugs/70bb5dad-9387-46c4-935d-cf74e70276a8/mnt/.bundle/gems/ruby/1.8/gems/activerecord-3.0.3/lib/active_record/connection_adapters/abstract/database_statements.rb:7:in `select_all'

Запуск Rails 3, Ruby 1.8.6 и MySQL 5.1.42.

Я действительно нахожусь в конце моего остроумия здесь, поэтому любая помощь будет принята с благодарностью!

Дэвид

Ответы [ 4 ]

11 голосов
/ 02 февраля 2011

Похоже на ошибку в коннекторе ruby-mysql при попытке запустить will_paginate со всеми, например, @ author.books.all.paginate (...)

https://github.com/tmtm/ruby-mysql/issues#issue/8

быстрое решение - вернуться к гему ruby-mysql 2.9.3

Проверять наличие известных ошибок в любом используемом гем соединителя mysql

0 голосов
/ 10 июня 2015

У меня была эта проблема в приложении rails3, и она была решена путем перехода на ruby ​​с версии 2.0.0 до версии 1.9.3

0 голосов
/ 01 мая 2011

В моей ситуации снижение до ruby-mysql 2.9.3 не решило полностью.

Мне также пришлось обновить этот файл: https://github.com/tmtm/ruby-mysql/commit/07ddfafafbd1d46bbb71c7cb54ae0f03bc998d27

И просто чтобы решить эту проблему, ruby-mysql 2.9.4 отлично работает на ubuntu 10.04, но не на macos - снежный барс.

0 голосов
/ 20 января 2011

Это то, что я делаю, чтобы мои настройки работали (в Ubuntu):

sudo apt-get install mysql-server-5.1 mysql-client-5.1 libmysqlclient-dev
sudo gem install mysql

Убедитесь, что вы используете гем mysql, а не что-то другое (например, ruby-mysql).

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