Назад | Перейти на главную страницу

Ошибка MySQL «max_allowed_packet» - как профилировать максимальный размер пакета?

Продолжайте сталкиваться с сообщением об ошибке "max_allowed_packet", которое связано с данными, которые я только что догадался, каким должно быть число ....

Я хотел бы перестать гадать и знать, как узнать, каким должно быть число - и похоже, что эта информация может быть в информации таблицы базы данных в столбце «Data_length».

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

(Если это важно, я продолжаю получать эти ошибки при восстановлении БД.)

Вопросы, отзывы, пожелания - просто комментируйте, спасибо !!


Дополнительная информация: это база данных INNOdb, а не MyISAM.


ОБНОВЛЕНИЕ (1):

Пытаясь найти способ протестировать «max_packet», я сделал следующее: запустил восстановление, получил ошибку с номером строки, вызвавшей ошибку, сбросил эту строку в текстовый файл, чтобы измерить размер файла.

ОШИБКА:

ERROR 1153 (09S01) at line 2742: Got a packet bigger than "max_allowed_packet" bytes

Код SED:

sed 'INSERTLINENUMBERq;d' INSERTDATABASEDUMPFILENAME.sql > INSERTLINENUMBER.txt

Проблема в том ... эта строка составляет всего 8 МБ, для параметра «max_allowed_packet» установлено значение 100 МБ.

Я не уверен на 100%, как профилировать ситуацию max_allowed_packet. Но я знаю, что у меня есть экспорт базы данных размером ~ 3 ГБ для импорта с размером max_allowed_packet 100 МБ. Обычно я просто устанавливаю его произвольно высоко, импортирую данные, затем снова устанавливаю значение 1M и перезапускаю mysqld.