2012-07-11 299 views
6

我有一个csv文件,一个大的30000行。我试图使用LOAD文件等从终端导入它,就像我在google上发现的那样,但它不起作用。它正在进行导入,但我的表达到了30000行NULL单元。使用phpMyAdmin导入大型csv文件

之后,我尝试了phpMyAdmin,在那里我发现我的csv太大了。我使用CSV Splitter将它分成5份。我为第一个文件创建了导入。一切都很好。比我试图导入第二个,但我得到的公益错误:

Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 35 bytes) in C:\xampp\phpMyAdmin\libraries\import\csv.php on line 370

或1064错误的时候。

您是否知道为什么以及如何解决?谢谢。

回答

20

增加你的php的内存限制和脚本时间,这是因为你通过PHP服务器执行mysql指令。

检查您的php.ini文件这个瓦尔:

memory_limit 
max_execution_time 

但无论如何,我会做到这一点通过MySQL客户端(终端),检查MySQL的文档

LOAD DATA LOCAL INFILE '/path/to/your/csv/file/csv_file.csv' INTO TABLE database_name.table_name FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY '\n'; 

Mysql Documentation - Load Data Infile Syntax PHP Documentation - Ini core settings

+0

谢谢你的建议。我已经做到了这一点,但仍然是同样的问题。任何其他想法? – duracell 2012-07-11 10:33:18

+0

你的配置是什么?我的意思是memory_limit和max_execution_time – 2012-07-11 10:39:50

+1

从128我改为512和1024以及从30到60. – duracell 2012-07-11 10:54:07

1

我试图用phpMyAdmin导入大文件时遇到了这个问题,而且我也无法在版本中使用该命令我正在使用。为了解决这个问题,我使用了this CSV editor并将文件分割成更小的文件。当我分别导入每个块时工作得很好。