首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >在MySQL中找不到outfile创建的文件

在MySQL中找不到outfile创建的文件
EN

Stack Overflow用户
提问于 2012-07-14 22:17:36
回答 8查看 59.5K关注 0票数 49

我使用以下查询来创建一个CSV文件

代码语言:javascript
代码运行次数:0
运行
复制
SELECT email INTO OUTFILE "mydata.csv"
FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'
LINES TERMINATED BY "\n"
FROM users;

但是当我在filezilla中搜索时,我在任何地方都找不到mydata.csv文件。

你知道这个文件存储在哪里吗?

查询成功运行,没有任何错误!有什么帮助吗?

EN

回答 8

Stack Overflow用户

回答已采纳

发布于 2012-07-14 22:27:23

MySQL可能会将文件写入自己的数据目录,例如/var/lib/mysql/<databasename>。要指定路径,请使用完整路径。

但是,它必须是一个可由运行MySQL服务器守护程序的用户帐户写入的目录。因此,我将经常使用/tmp

指定要写入的路径,如下所示:

代码语言:javascript
代码运行次数:0
运行
复制
INTO OUTFILE '/tmp/mydata.csv'

请注意,MySQL将在MySQL服务器上写入文件,而不是在您的客户机上。因此,远程连接将在远程服务器上创建输出文件。另请参阅SELECT INTO OUTFILE local ?了解更多详细信息和解决方法。

Systemd和Linux

有关在运行/tmp systemd系统上写入的说明

在最初发布这篇文章几年后,我发现自己无法找到通过

代码语言:javascript
代码运行次数:0
运行
复制
...INTO OUTFILE '/tmp/outfile.csv'

在运行带有systemd的Fedora Linux的MariaDB 5.5服务器上。该目录和文件是在/tmp中的systemd目录下创建的,而不是按照指定将文件直接写入/tmp/outfile.csv

代码语言:javascript
代码运行次数:0
运行
复制
/tmp/systemd-mariadb.service-XXXXXXX/tmp/outfile.csv

虽然文件outfile.csv本身和systemd子目录都是完全可写的,但tmp/服务目录本身具有700个权限,属于超级用户所有,因此需要sudo访问权限才能检索其中的文件。

没有将MariaDB中的绝对路径指定为/tmp/outfile.csv并将其相对指定为outfile.csv,而是按照预期将该文件写入到当前选定数据库的MariaDB数据目录中。

票数 76
EN

Stack Overflow用户

发布于 2012-07-14 23:07:58

我怀疑您正在客户机上查找该文件。

SELECT .. INTO OUTFILE将文件写到服务器机器上。

票数 19
EN

Stack Overflow用户

发布于 2015-02-03 22:09:23

举个例子:

我已经在MySQL工作台中运行了以下查询,我在以下位置找到了我的文件

代码语言:javascript
代码运行次数:0
运行
复制
SELECT * FROM `db`.`table` INTO OUTFILE 'file.csv' FIELDS TERMINATED BY ',';

D:\wamp\bin\mysql\mysql5.6.17\data\db\file.csv

您可以使用以下示例来设置您的文件路径:

代码语言:javascript
代码运行次数:0
运行
复制
SELECT * FROM `db`.`table` INTO OUTFILE 'C:\\file.csv' FIELDS TERMINATED BY ',';
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11484471

复制
相关文章

相似问题

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