使用phpMyAdmin导入大型CSV文件

7

我有一个csv文件,很大,有30,000行。我尝试使用终端中的LOAD file等方法导入它,就像我在谷歌上找到的那样,但是它没有起作用。虽然进行了导入,但我的表格变成了30,000个空单元格。

之后,我尝试使用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错误。

你知道为什么吗?我该如何解决?谢谢。

2个回答

26

增加你的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文档 - Load Data Infile 语法 PHP文档 - Ini核心设置


谢谢您的建议。我已经尝试过了,但问题仍然存在。还有其他的想法吗? - duracell
1
从128变成了512,然后是1024...而且从30到60。 - duracell
要么我不知道怎么做,要么它不起作用...无论如何,感谢你的尝试。 - duracell
然后安装MySQL Workbench并使用此指令https://dev59.com/92gu5IYBdhLWcg3wTFSi#11429986。 - Packet Tracer
2
对于不习惯使用命令行的人,请确保使用用户登录 MySql(而不仅仅是启动 mysql.exe)。例如:mysql -u root -p yourpassword - Fabien Snauwaert
1
在我的情况下,我通过命令行完成了它,速度非常快。感谢@PacketTracer的建议。 - spacebiker

1

我在使用phpMyAdmin导入大文件时遇到了问题,而且我也无法在我使用的版本中使用命令。为了解决这个问题,我使用了这个CSV编辑器并将文件分成了较小的文件。当我单独导入每个块时,它可以正常工作。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接