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给出,则该名称将相对于客户机程序启动的目录进行解释。