我有一个PHP脚本,它解析XML文件并创建一个类似于这样的大型SQL文件:
INSERT IGNORE INTO table(field1,field2,field3...)
VALUES ("value1","value2",int1...),
("value1","value2",int1)...etc
此文件总计超过20GB(我已经在2.5GB文件上测试过,但它也失败了。)
我尝试过如下命令:
mysql -u root -p table_name< /var/www/bigfile.sql
这适用于较小的文件,比如大约50MB。但它不适用于较大的文件。
我试过了:
mysql> source /var/www/bigfile.sql
我也尝试过mysqlimport,但这甚至不能正确处理我的文件。
我一直收到错误消息
ERROR 2006 (HY000): MySQL server has gone away
发生约。我开始执行后30秒。
我将allowed_max_packet设置为4GB,但在使用SHOW VARIABLES进行验证时,它只显示1GB。
有没有办法做到这一点而不浪费另外10个小时?
答案 0 :(得分:2)
尝试将文件拆分为多个INSERT查询。