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

我正在使用以下查询来创建CSV文件

SELECT email INTO OUTFILE "mydata.csv"
FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'
LINES TERMINATED BY "\n"
FROM users;

但是当我通过filezilla搜索时,无法在任何地方找到mydata.csv文件。

知道该文件的存储位置吗?

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

user1460822 asked 2020-07-26T18:09:51Z
7个解决方案
57 votes

MySQL可能正在将文件写入其自己的数据目录,例如systemd。 要指定路径,请使用完整路径。

但是,该目录必须是运行MySQL服务器守护程序的用户帐户可写的目录。 因此,我将经常使用systemd

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

INTO OUTFILE '/tmp/mydata.csv'

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

系统与Linux

关于在运行/tmp/outfile.csv的Linux系统上写入systemd的说明:

最初发布此文件后的几年,我发现自己无法找到通过以下方式写入systemd的文件

...INTO OUTFILE '/tmp/outfile.csv'

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

/tmp/systemd-mariadb.service-XXXXXXX/tmp/outfile.csv

尽管文件/tmp/outfile.csv本身和outfile.csv子目录都是可全局创建的,但systemd服务目录本身具有700个权限,并且是root拥有的,需要sudo访问权限才能在其中检索文件。

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

Michael Berkowski answered 2020-07-26T18:10:57Z
19 votes

我怀疑您正在客户端计算机上寻找文件。

SELECT .. INTO OUTFILE将文件写入服务器计算机。

Shlomi Noach answered 2020-07-26T18:11:22Z
3 votes

仅作为示例:

我已经在MySQL Workbench中运行以下查询,并且在以下位置找到了我的文件

SELECT * FROM `db`.`table` INTO OUTFILE 'file.csv' FIELDS TERMINATED BY ',';

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

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

SELECT * FROM `db`.`table` INTO OUTFILE 'C:\\file.csv' FIELDS TERMINATED BY ',';
Neeraj Singh answered 2020-07-26T18:11:55Z
2 votes

我找到了使用以下命令创建的INTO OUTFILE文件

select name from users into outfile "name.csv"

在以下位置

C:\ ProgramData \ MySQL \ MySQL Server 5.6 \ data \ name.csv

这可能是默认位置,因为我从未更改过任何内容。

StackG answered 2020-07-26T18:12:28Z
2 votes

如果OS X上的任何人都有此问题,则安装有自制软件的mysql的默认输出位于/usr/local/var/mysql/database-name/

seeker_of_bacon answered 2020-07-26T18:12:48Z
0 votes

您在.....OUTFILE 'C:\carro.txt'中找到该文件,但如果输入以下data,则名称将为carro.txt

因此,只需写入.....OUTFILE 'C:\carro.txt'即可在data文件夹中获取名为carro.txt的文件

Naren answered 2020-07-26T18:13:13Z
0 votes

+1到@ michael-berkowski,Windows所需的答案是(正如他所说)

MariaDB的数据目录

具体来说,我的数据库位于名为“ mydatabase”的数据库的数据文件夹中

C:\ Program Files \ MariaDB 10.3 \ data \ mydatabase

WEBjuju answered 2020-07-26T18:13:46Z
translate from https://stackoverflow.com:/questions/11484471/cant-find-the-file-created-by-outfile-in-mysql