我正在将csv文件加载到运行在本地主机上的mysql实例中。我可以使用LOAD DATA LOCAL INFILE语法来实现这一点,但我想知道的是,如果服务器和文件位于同一台计算机上,为什么需要LOCAL。如果没有本地信息,我就会发现一个错误:
ERROR 13 (HY000): Can't get stat of '/path/to/myfile.csv' (Errcode: 13)发布于 2014-01-09 02:47:44
这是因为MySQL所在的系统帐户没有读取此文件的权限。
当您不指定LOCAL时,MySQL 服务器将直接读取该文件,处理,并且必须拥有读取该文件的权限。
当您添加LOCAL时,该文件是由mysql 客户端程序读取的,而不是服务器进程,在您的情况下,显然可以访问您的csv文件,也就是说,我猜想该文件位于您工作的帐户的用户目录中。
如果您将该文件放在MySQL进程有权读取的目录(例如/tmp/myfile.csv)中,则LOAD DATA INFILE将正常工作。
负载数据信息 本地关键字会影响预期文件的位置:
发布于 2014-01-09 02:44:48
查看这些文档的最佳位置是在MySQL文档中。查看http://dev.mysql.com/doc/refman/5.1/en/load-data.html
--本地选项导致mysqlimport从客户端主机读取数据文件.
https://stackoverflow.com/questions/21010709
复制相似问题