mysql加载数据infile无法获取文件的状态Errcode:2

我已经找遍了,发现没有解决办法,任何帮助,这将是伟大的。

查询:

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权限的文件

尝试使用LOAD DATA LOCAL INFILE而不是LOAD DATA INFILE

否则检查apparmor是否对你的目录有效

我有一个类似的问题。 该决议是一个轻度丑陋的黑客,但更容易记住比卡马尔解决方法,只要你可以'sudo'。 首先,我必须把input文件放到我使用的数据库的mysql子目录中:

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

这做一个副本,并留下作为文件所有者的“ root ”。 进入MySQL后,做了一个USE mydatabasename ,我能够使用填充适当的表

 LOAD DATA INFILE 'mytabdelimitedtextfile.txt' INTO TABLE mytablename; 

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

例如:mysqlimport –local databasename file.txt -p

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

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

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

在我的情况下,我有实例本身的csv文件。

把绝对path解决我的问题。

这里是MySQL文档的一行

如果指定了LOCAL,则该文件由客户端主机上的客户端程序读取并发送到服务器。 该文件可以作为完整的path名来指定它的确切位置。 如果以相对path名称的forms给出,则该名称将相对于客户机程序启动的目录进行解释。

http://dev.mysql.com/doc/refman/5.7/en/load-data.html