MySQL 1153: Got a packet bigger than max_allowed_packet — что делать
Ошибка 1153 значит, что одна команда из дампа оказалась больше, чем база разрешает за один раз. Ошибка 2020 — то же самое на стороне программы. Лимит можно увеличить.
Содержание 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.0 | 64 МБ |
| Сервер MariaDB | 16 МБ |
| Программа mysql | 16 МБ |
| Программа mysqldump | 24 МБ |
Наибольшее значение — 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. В других версиях строки могут немного отличаться.
Источники
- Исходный код MySQL 8.0.46: sys_vars.cc — max_allowed_packet сервера MySQL: 64 МБ, наибольшее — 1 ГБ.
- Исходный код MariaDB 10.11.14: sys_vars.cc — max_allowed_packet сервера MariaDB: 16 МБ.
- Исходный код MySQL 8.0.46: mysql.cc — лимит программы mysql — 16 МБ.
- Исходный код MySQL 8.0.46: mysqldump.cc — лимит mysqldump — 24 МБ и текст ошибки при выгрузке.
- Пакет MySQL в Ubuntu 24.04: mysqld.cnf — файл настроек сервера: bind-address, журнал, max_allowed_packet.
- Пакет MariaDB в Ubuntu 24.04: 50-server.cnf — файл настроек сервера: bind-address, max_allowed_packet.
- Пакет MySQL в Ubuntu 24.04: mysql-server-8.0.install — куда ставится файл настроек mysqld.cnf.
- Пакет MariaDB в Ubuntu 24.04: mariadb-server.install — куда ставится файл настроек 50-server.cnf.
- Исходный код MySQL 8.0.46: messages_to_clients.txt — тексты ошибок сервера MySQL.
- Исходный код MySQL 8.0.46: errmsg.cc — тексты ошибок программы-клиента MySQL.
- Исходный код клиентской библиотеки MariaDB: ma_errmsg.c — тексты ошибок программы-клиента MariaDB.
Сверено 10 октября 2026 года.
Что почитать дальше
Проверено и обновлено: 10.10.2026