首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >mysql加载数据分区本地主机

问mysql加载数据分区本地主机
EN

Stack Overflow用户
提问于 2014-01-09 02:40:53
回答 2查看 1.2K关注 0票数 0

我正在将csv文件加载到运行在本地主机上的mysql实例中。我可以使用LOAD DATA LOCAL INFILE语法来实现这一点,但我想知道的是,如果服务器和文件位于同一台计算机上,为什么需要LOCAL。如果没有本地信息,我就会发现一个错误:

代码语言:javascript
复制
ERROR 13 (HY000): Can't get stat of '/path/to/myfile.csv' (Errcode: 13)
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-01-09 02:47:44

这是因为MySQL所在的系统帐户没有读取此文件的权限。

当您不指定LOCAL时,MySQL 服务器将直接读取该文件,处理,并且必须拥有读取该文件的权限。

当您添加LOCAL时,该文件是由mysql 客户端程序读取的,而不是服务器进程,在您的情况下,显然可以访问您的csv文件,也就是说,我猜想该文件位于您工作的帐户的用户目录中。

如果您将该文件放在MySQL进程有权读取的目录(例如/tmp/myfile.csv)中,则LOAD DATA INFILE将正常工作。

负载数据信息 本地关键字会影响预期文件的位置:

  • 如果指定了本地文件,则由客户端主机上的客户机程序读取该文件,并将其发送到服务器。文件可以作为一个完整的路径名来指定它的确切位置。如果指定为相对路径名,则该名称将相对于启动客户端程序的目录进行解释。
  • 如果未指定本地文件,则该文件必须位于服务器主机上,并由服务器直接读取。
票数 1
EN

Stack Overflow用户

发布于 2014-01-09 02:44:48

查看这些文档的最佳位置是在MySQL文档中。查看http://dev.mysql.com/doc/refman/5.1/en/load-data.html

--本地选项导致mysqlimport从客户端主机读取数据文件.

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21010709

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档