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 на большее?

Благодарю вас!

1 ответ

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

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

Даже если вы установите его выше, 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 для подробностей.

Другие вопросы по тегам