Продолжайте сталкиваться с сообщением об ошибке "max_allowed_packet", которое связано с данными, которые я только что догадался, каким должно быть число ....
Я хотел бы перестать гадать и знать, как узнать, каким должно быть число - и похоже, что эта информация может быть в информации таблицы базы данных в столбце «Data_length».
Верно ли это, и если да, то как мне рассчитать значение для ввода в конфигурацию MySQL, чтобы избежать ошибки, прежде чем я ее получу.
(Если это важно, я продолжаю получать эти ошибки при восстановлении БД.)
Вопросы, отзывы, пожелания - просто комментируйте, спасибо !!
Дополнительная информация: это база данных INNOdb, а не MyISAM.
Пытаясь найти способ протестировать «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.