使用 phpMyAdmin 导入大型 csv 文件

Posted

技术标签:

【中文标题】使用 phpMyAdmin 导入大型 csv 文件【英文标题】:Import large csv file using phpMyAdmin 【发布时间】:2012-07-10 22:15:45 【问题描述】:

我有一个 csv 文件,一个很大,有 30 000 行。正如我在谷歌上发现的那样,我尝试使用 LOAD 文件等从终端导入它,但它没有用。它正在导入,但我的表有 30 000 行 NULL 单元格。

之后我尝试了 phpMyAdmin,发现我的 csv 太大了。我使用 CSV Splitter 将其分成 5 份。我已经为第一个文件进行了导入。一切都很顺利。比我尝试导入第二个,但我得到了错误:

致命错误:允许的内存大小为 134217728 字节已用尽(已尝试 分配 35 个字节)在 C:\xampp\phpMyAdmin\libraries\import\csv.php 在第 370 行

有时会出现 1064 错误。

您知道为什么以及如何解决它吗?谢谢。

【问题讨论】:

【参考方案1】:

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

检查你的 php.ini 文件中是否有这个变量:

memory_limit
max_execution_time

但无论如何我都会通过mysql客户端(终端)来做,检查mysql doc

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

【讨论】:

感谢您的建议。我已经这样做了,但仍然是同样的问题。还有其他想法吗? 从 128 我变成了 512 而不是 1024 ...从 30 到 60。 要么我不知道该怎么做,要么它不起作用......无论如何,谢谢你的尝试。 对于不习惯从命令行使用 MySql 的人,请确保以用户身份登录(而不是仅仅启动 mysql.exe)。例如:mysql -u root -p yourpassword 就我而言,我是通过命令行完成的,而且速度非常快。感谢@PacketTracer 的建议。【参考方案2】:

我在尝试使用 phpMyAdmin 导入大文件时遇到了这个问题,并且我也无法在我正在使用的版本中使用该命令。为了解决这个问题,我使用了this CSV editor 并将文件拆分为更小的文件。当我单独导入每个块时工作正常。

【讨论】:

以上是关于使用 phpMyAdmin 导入大型 csv 文件的主要内容,如果未能解决你的问题,请参考以下文章

如何将 CSV 导入 phpMyAdmin?

使用 phpmyadmin 将单列 csv 文件导入 mysql

问题:使用 phpMyAdmin Works 导入 csv,Php 脚本以不同方式处理 csv 导入

使用 phpMyAdmin 将带有部分数据的制表符分隔的 csv 文件导入 mysql 表

在 phpmyadmin 中自动导入 csv 文件

通过phpmyadmin将csv文件导入mysql