Ошибки

MySQL 1153: Got a packet bigger than max_allowed_packet — что делать

Ошибка 1153 значит, что одна команда из дампа оказалась больше, чем база разрешает за один раз. Ошибка 2020 — то же самое на стороне программы. Лимит можно увеличить.

Обновлено 10.10.2026≈ 5 мин чтения
Содержание 7

Как выглядит ошибка

При загрузке дампа — ошибка сервера базы:

ERROR 1153 (08S01) at line 345: Got a packet bigger than 'max_allowed_packet' bytes

При выгрузке mysqldump — ошибка программы:

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

В MariaDB текст ошибки 2020 короче: Got packet bigger than 'max_allowed_packet'.

Почему так

max_allowed_packet — наибольший размер одной команды или одной строки таблицы, которую база и программа передают друг другу. В дампе каждая команда INSERT добавляет сразу много строк таблицы, и с большими записями или файлами внутри базы она может превысить лимит.

ГдеЛимит по умолчанию
Сервер MySQL 8.064 МБ
Сервер MariaDB16 МБ
Программа mysql16 МБ
Программа mysqldump24 МБ

Наибольшее значение — 1 ГБ.

Если ошибка при загрузке дампа на свой VPS

Нужно увеличить лимит на сервере базы. Команды на этой странице вводятся на сервере: подключитесь к нему по SSH (как подключиться) и набирайте их в том же окне.

Откройте файл настроек (как редактировать файл — в разделе про nano). Для MySQL:

sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf

Найдите строку: нажмите Ctrl+W, введите max_allowed_packet и нажмите Enter. Строка выглядит так: # max_allowed_packet = 64M. Удалите # и пробел в начале и замените число на 256M.

Для MariaDB:

sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf

Найдите так же строку #max_allowed_packet = 1G, удалите # в начале и замените 1G на 256M.

Должно получиться:

max_allowed_packet = 256M

Сохраните файл и перезапустите базу. Для MySQL:

sudo systemctl restart mysql

Для MariaDB — sudo systemctl restart mariadb. Проверьте, что лимит изменился: войдите в базу командой sudo mysql и выполните:

SHOW VARIABLES LIKE 'max_allowed_packet';

В ответе должно быть число 268435456 — это 256 МБ в байтах. Выйдите командой exit и загрузите дамп с тем же лимитом для программы:

mysql --max_allowed_packet=256M -u ivan -p base < base.sql

Вместо ivan подставьте своего пользователя базы, вместо base — имя базы, вместо base.sql — имя своего файла. Команда спросит пароль пользователя базы. Загружать файл заново можно в ту же базу: mysqldump по умолчанию пишет перед каждой таблицей команду удалить её, поэтому таблицы, которые успели загрузиться до ошибки, создадутся заново.

Если служба не запустилась после правки, посмотрите журнал, как на странице ошибки 2002, и проверьте, что строка написана без опечаток.

Если ошибка при выгрузке mysqldump

Добавьте лимит в команду mysqldump:

mysqldump --max_allowed_packet=256M -u ivan -p base > base.sql

Если ошибка остаётся, увеличьте лимит и на сервере базы, как в разделе выше.

Если сайт на обычном хостинге

Настройки сервера базы на обычном хостинге меняет сам хостинг. Напишите в поддержку, приложите текст ошибки и спросите, можно ли увеличить max_allowed_packet для вашей базы.

Тексты ошибок и настройки сверены с исходным кодом MySQL 8.0.46 и MariaDB 10.11.14 — эти версии ставятся из пакетов Ubuntu 24.04. В других версиях строки могут немного отличаться.

Источники

Сверено 10 октября 2026 года.

Что почитать дальше

Проверено и обновлено: 10.10.2026