我已经全神贯注地找不到任何解决方案,对此的任何帮助都会很棒。
查询:
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
我尝试过的事情:
答案 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,则客户端主机上的客户端程序将读取该文件并将其发送到服务器。该文件可以作为完整路径名提供,以指定其确切位置。如果以相对路径名的形式给出,则相对于启动客户端程序的目录解释名称。