MySQL: server has gone away при импорте sql dump'а

«MySQL: server has gone away». Как с этим бороться в винде? Вылезает при операции mysql -u user -p db < dump.sql (300 метров). В *nix на той же версии mysql проблем нет.
  • Вопрос задан
  • 7973 просмотра
Пригласить эксперта
Ответы на вопрос 3
ServDev
@ServDev
Попробуйте изменить в конфиге MySQL max_allowed_packet
Ответ написан
cyberia
@cyberia
Веб-разработчик, плавно перехожу в мобильные разра
@lubezniy
Проблема такая возникает, если дамп делать с опцией extended-insert, когда он пишется в стиле:

INSERT INTO ttable VALUES (1,'2','3'),(2,'2','4'),(4,'5','1');

Наборов значений может быть полно.Насколько я заметил, такие запросы обрабатываются только целиком, а для этого клиенту нужно считать сразу весь запрос. Если значений очень много (сталкивался на таблицах с сотнями тысяч записей), то задача упирается или в превышение max_allowed_packet (об этом выдаётся сообщение), или в нехватку выделяемой оперативной памяти (в этом случае сервер валится вместе с процессом).
Во избежание подобных ситуаций предпочитаю делать дамп с отключенным --extended-insert, когда на один INSERT-запрос приходится один набор значений. Размер дампа, естественно, увеличивается, но его можно обработать без таких проблем.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы