Подтвердить что ты не робот

Mysqldump error: Получил пакет больше, чем max_allowed_packet '

Мое приложение загружает письма через IMAP и хранит их в базе данных MySQL. Раньше я поддерживал размер почтовых сообщений до 10 МБ и, следовательно, достаточно столбца "средний текст" для хранения содержимого почты. Теперь мне нужно поддерживать почту до 30 МБ. Поэтому я изменил тип данных для столбца на 'largetext'. Вчера было сохранено письмо размером 25 МБ. После этого всякий раз, когда я выполняю команду mysqldump, она выдает ошибку:

mysqldump: Error 2020: Got packet bigger than 'max_allowed_packet' bytes when dumping table `ib_mailbox_backup` at row: 3369

Строка 3369 содержит 25 МБ почты.

В конфигурации MySQL я увеличил "max_allowed_packet" с 64M до 512M, и он по-прежнему терпит неудачу с той же ошибкой. Выполнение команды mysqldump на том же компьютере, на котором запущен сервер MySQL. Как я могу это решить?

4b9b3361

Ответ 1

  • Вы можете добавить --max_allowed_packet=512M в свою команду mysqldump.
  • Или добавьте max_allowed_packet=512M в [mysqldump] раздел вашего my.cnf (спасибо @Varun)

Примечание: он не будет работать, если он не находится в разделе [mysqldump]...

Ответ 2

Некоторые из моих скриптов перестали работать после обновления до Debian 9 и MariaDB.

MariaDB на Debian вводит новый файл конфигурации специально для настроек mysqldump (/etc/mysql/conf.d/mysqldump.cnf). Если ранее вы установили max_allowed_packet < > 16M в свой стандартный /etc/mysql/my.cnf, новый файл конфигурации перезапишет этот параметр. Поэтому обязательно проверьте этот новый файл конфигурации и либо удалите запись, либо настройте ее на свои нужды.

Я не уверен, что изменение было внесено в swap из MySQL в MariaDB или если Debian внес изменения в то, как файлы конфигурации размещаются в V9.

Ответ 3

У меня была аналогичная ошибка и с ошибкой размером 512 М в строке 0. Это была таблица innodb, которая была явно повреждена (mysqlcheck показал ОК). Я закончил тем, что воссоздал таблицу, а затем работал отлично с небольшим размером пакета всего в 128 М.