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

MySQL max_allowed_packet больше 1024 МБ

У меня есть БД размером более 1 ГБ (~ 1,4 ГБ). Выгрузка БД была остановлена ​​на 1 ГБ, потому что max_allowed_packet - 1073741824 (1 ГБ). В файле /etc/my.conf я установил max_allowed_packet = 2048M.

Как мне увеличить max_allowed_packet 1073741824 до большего?

Спасибо!

Плохие новости

Максимальное значение для max_allowed_packet составляет 1 ГБ или 1024 МБ.

Даже если вы установите его выше, MySQL не будет загружать данные, превышающие ограничение в 1 ГБ.

Хорошие новости

Пакет MySQL предназначен для обработки строк, особенно в большом количестве. Чем меньше поля TEXT / BLOB в ваших таблицах, тем надежнее будет использоваться пакет MySQL. Чтобы вы могли быть более уверены в его использовании, вот объяснение того, что такое пакет MySQL:

Согласно стр. 99 из "Понимания внутреннего устройства MySQL" (ISBN 0-596-00957-7), вот параграфы 1-3, объясняющие это:

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

Интересующий код в отношении этой опции находится в sql / net_serv.cc. Взгляни на my_net_read (), затем следуйте призыву my_real_read () и обратите особое внимание на net_realloc ().

Эта переменная также ограничивает длину результата для многих строковых функций. Видеть sql / field.cc и sql / intem_strfunc.cc для подробностей.