mysql加载数据infile无法获取文件的统计信息Errcode:2

时间:2010-08-12 19:49:22

标签: mysql load-data-infile

我已经全神贯注地找不到任何解决方案,对此的任何帮助都会很棒。

查询:

LOAD DATA INFILE '/Users/name/Desktop/loadIntoDb/loadIntoDB.csv' 
INTO TABLE `tba`.`tbl_name` 
FIELDS TERMINATED BY ','
LINES TERMINATED BY '\r\n'
IGNORE 1 LINES
(
field1, field2, field3
)

错误:

Can't get stat of '/Users/name/Desktop/loadIntoDb/loadIntoDB.csv' (Errcode:2)

注:

我在OSX 10.6.4上运行MySQL Query浏览器连接到MySQL 5.x

我尝试过的事情:

  • 将正降
  • Chmod 777
  • 放入具有777权限的文件夹 以及有777的文件 权限

5 个答案:

答案 0 :(得分:118)

尝试使用LOAD DATA LOCAL INFILE代替LOAD DATA INFILE

否则检查您的目录是否有apparmor

答案 1 :(得分:9)

我有类似的问题。该解决方案是一个有点丑陋的黑客,但比apparmor解决方案更容易记住,前提是你可以'sudo'。首先,我必须将输入文件放在我正在使用的数据库的mysql子目录中:

sudo cp myfile.txt /var/lib/mysql/mydatabasename

这会复制并保留“root”作为文件所有者。进入mysql并执行USE mydatabasename后,我能够使用

填充适当的表
LOAD DATA INFILE 'mytabdelimitedtextfile.txt' INTO TABLE mytablename;

答案 2 :(得分:2)

使用--local参数将有助于此。

示例:mysqlimport --local databasename file.txt -p

源: http://dev.mysql.com/doc/refman/5.1/en/load-data.html " --local选项导致mysqlimport从客户端主机读取数据文件"

答案 3 :(得分:1)

对我来说,将内容复制到/ tmp并将其用作源文件夹就可以了。 我使用MariaDB,我的版本不允许使用“LOCAL”修饰符。 有趣的是,对CSV文件夹的读写访问也不起作用。

答案 4 :(得分:0)

在AWS实例上填充mysql中的表时遇到了同样的问题。

在我的情况下,我在实例中拥有了csv文件。

放弃绝对路径解决了我的问题。

以下是MySQL文档中的行

  

如果指定了LOCAL,则客户端主机上的客户端程序将读取该文件并将其发送到服务器。该文件可以作为完整路径名提供,以指定其确切位置。如果以相对路径名的形式给出,则相对于启动客户端程序的目录解释名称。

MS