Импорт дампа базы данных mysql очень большого размера
Импорт дампа базы данных mysql очень большого размера¶
Ахтунг!
Так как ограничения у не привилегированных пользователей с большой долей вероятности не дадут импортировать большой дамп, лучше делать это от учётки root базы данных MySQL.
Подключаемся к базе
mysql -u root -p
Смотрим значения net_buffer_length
show variables like "net_buffer_length";
mysql> show variables like "net_buffer_length";
+-------------------+-------+
| Variable_name | Value |
+-------------------+-------+
| net_buffer_length | 16384 |
+-------------------+-------+
1 row in set (0.00 sec)
и max_allowed_packet
show variables like "max_allowed_packet";
mysql> show variables like "max_allowed_packet";
+--------------------+---------+
| Variable_name | Value |
+--------------------+---------+
| max_allowed_packet | 4194304 |
+--------------------+---------+
1 row in set (0.00 sec)
И сохраняем их куда-то в текстовый файл, так так они нам ещё понадобятся.
Увеличиваем значение параметра net_buffer_length
set global net_buffer_length=1000000;
Устанавливаем максимально разрешённый max_allowed_packet
set global max_allowed_packet=1000000000;
Отключаем проверку foreign key checking для предотвращения задержек, ошибок и не ожидаемого поведения в процессе импорта.
SET foreign_key_checks = 0;
А теперь тут же, в консоли mysql, в сессии с изменёнными настройками, импортируем дамп с помощью запроса source
source file.sql
Возвращаем настройки mysql к состоянию, в каком они пребывали до того, как мы начали их изменять
SET foreign_key_checks = 1;
set global max_allowed_packet=4194304;
set global net_buffer_length=16384;
Полезная информация, использованная для решения проблемы с импортом больших дампов, благодаря которой появилось это руководство