2012-07-11 185 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並將文件分割成更小的文件。當我分別導入每個塊時工作得很好。