如何将LARGE sql文件导入mysql表

nic*_*ick 6 php mysql sql apache mysqlimport

我有一个PHP脚本解析XML文件并创建一个大型SQL文件,如下所示:

INSERT IGNORE INTO table(field1,field2,field3...)
VALUES ("value1","value2",int1...),
("value1","value2",int1)...etc
Run Code Online (Sandbox Code Playgroud)

这个文件总计超过20GB(我已经在2.5GB文件上测试过,但它也失败了).

我尝试过如下命令:

mysql -u root -p table_name </var/www/bigfile.sql

这适用于较小的文件,比如大约50MB.但它不适用于较大的文件.

我试过了:

mysql> source /var/www/bigfile.sql
Run Code Online (Sandbox Code Playgroud)

我也试过mysqlimport,但是甚至不能正确处理我的文件.

我不断收到错误消息

ERROR 2006 (HY000): MySQL server has gone away
Run Code Online (Sandbox Code Playgroud)

发生约.我开始执行后30秒.

我将allowed_max_packet设置为4GB,但在使用SHOW VARIABLES进行验证时,它只显示1GB.

有没有办法做到这一点而不浪费另外10个小时?

Emi*_*röm 2

尝试将文件拆分为多个 INSERT 查询。