MySQL - «указанный объем должен быть увеличен» при попытке копирования базы данных - PullRequest
0 голосов
/ 02 января 2019

Я пытаюсь скопировать базу данных и могу делать это месяцами без проблем. Сегодня, однако, я столкнулся с ошибкой, которая говорит: «Размер BULK должен быть увеличен». Я использую SQLYog.

Я мало что нашел в Google по этому поводу, но кажется, что это трудно исправить, увеличив значение bulk_insert_buffer_size через что-то вроде 'SET SESSION bulk_insert_buffer_size = 1024 *1024* 256'. (Пробовал с GLOBAL вместо SESSION тоже)

Это не сработало, и я все еще получаю ошибку, к сожалению. Единственный другой бит информации, который я нашел, был исходный код, где генерируется сообщение, как показано здесь: screenshot of source code с этой страницы: https://github.com/Fale/sqlyog/blob/master/src/CopyDatabase.cpp. К сожалению, я действительно не знаю, что делать с этой информацией. Я попытался просмотреть код, чтобы выяснить, какие переменные mysql (например, bulk_insert_buffer_size) привязаны к переменным, используемым в исходном коде, но не смогли эффективно им следовать.

Любая помощь будет оценена.

1 Ответ

0 голосов
/ 02 января 2019

http://faq.webyog.com/content/24/101/en/about-chunks-and-bulks.html говорит, что вы можете указать размер BULK:

Настройки для инструмента «Экспорт» доступны в «Настройках» и для «резервного копирования» «Powertool» опцияпредоставляется мастером резервного копирования.

Вы должны убедиться, что размер BULK не превышает параметр конфигурации max_allowed_packet вашего MySQL сервера.Это значение по умолчанию 1 МБ, 4 МБ или 64 МБ, в зависимости от вашей версии MySQL.

Я не пользователь SQLYog, но я знаю, что mysqldump имеет аналогичную концепцию.Mysqldump автоматически вычисляет максимальный объемный объем, читая max_allowed_packet.

Для чего это стоит, bulk_insert_buffer_size не имеет значения для вас, если вы не копируете в таблицы MyISAM.Но в целом, вы не должны использовать таблицы MyISAM .

...