【发布时间】:2012-03-09 10:04:28
【问题描述】:
我有一个 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 表名/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 个小时的情况下做到这一点?
【问题讨论】:
标签: php mysql sql apache mysqlimport