Как импортировать большие файлы sql в таблицу mysql

у меня есть php-скрипт, который анализирует XML-файлы и создает большой SQL-файл, который выглядит примерно так:

INSERT IGNORE INTO table(field1,field2,field3...)
VALUES ("value1","value2",int1...),
("value1","value2",int1)...etc

этот файл добавляет более 20 ГБ (я тестировал файл 2,5 ГБ, но он тоже не работает).

Я пробовал такие команды, как:

mysql-u root - p table_name

это работает на небольших файлах, скажем, около 50 МБ. но это не работает с большим файлом.

I попробовал:

mysql> source /var/www/bigfile.sql

Я также пробовал mysqlimport, но это даже не будет правильно обрабатывать мой файл.

Я продолжаю получать сообщение об ошибке

ERROR 2006 (HY000): MySQL server has gone away

происходит приблизительно. 30 секунд после начала выполнения.

Я установил allowed_max_packet в 4GB, но при проверке его с помощью переменных SHOW он показывает только 1GB.

есть ли способ сделать это, не тратить еще 10 часов?

1 ответов


попробуйте разделить файл на несколько запросов Insert.