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

Phi*_*ord 62 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
)
Run Code Online (Sandbox Code Playgroud)

错误:

Can't get stat of '/Users/name/Desktop/loadIntoDb/loadIntoDB.csv' (Errcode:2)
Run Code Online (Sandbox Code Playgroud)

注意:

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

我试过的事情:

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

Pie*_*rre 125

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

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

  • 我得到错误`这个MySQL版本不允许使用的命令`:( (8认同)
  • 它是负载数据本地信息,因为你引导我走正确的道路.答案已接受 (7认同)
  • 答案中缺少的一件事是解释为什么LOCAL可能有所帮助.区别在于mysql服务器是否在mysql服务器主机上查找该文件,或者mysql客户端是否在其主机上查找该文件并将其传递给服务器.我正在将本地路径传递给远程mysql服务器,该服务器无效,LOCAL解决了这个问题. (7认同)
  • 完美的答案,我有一个类似的问题,它是apparmor,谢谢!:-) (2认同)
  • 不推荐使用的关键字`LOCAL`.可以使用`--local`启动标志,但不明智. (2认同)

小智 10

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

sudo cp myfile.txt /var/lib/mysql/mydatabasename
Run Code Online (Sandbox Code Playgroud)

这会复制并留下' root'作为文件所有者.进入mysql并执行之后USE mydatabasename,我能够使用填充适当的表

LOAD DATA INFILE 'mytabdelimitedtextfile.txt' INTO TABLE mytablename;
Run Code Online (Sandbox Code Playgroud)

  • 对于谁可能会觉得这很有用,这是对我有用的解决方案,而不是公认的答案。我在 Ubuntu 12.04 LTS 和 MySQL 5.5.35-0ubuntu0.12.04.1 上。 (2认同)