在MySQL中找不到由outfile创build的文件
我正在使用以下查询来创build一个CSV文件
SELECT email INTO OUTFILE "mydata.csv" FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' LINES TERMINATED BY "\n" FROM users; 但是我无法findmydata.csv文件,当我通过filezillasearch。
任何想法这个文件被储存?
查询成功运行,没有任何错误! 任何帮助?
  MySQL可能会将文件写入自己的数据目录,例如/var/lib/mysql/<databasename> 。 要指定path,请使用完整path。 
 但是,它必须是一个可由MySQL服务器守护程序运行的用户帐户写入的目录。 出于这个原因,我经常使用/tmp : 
指定要写入的path,如下所示:
 INTO OUTFILE '/tmp/mydata.csv' 
注意MySQL将把这个文件写在MySQL 服务器上 ,而不是在你的客户端机器上。 因此,远程连接将在远程服务器上创build输出文件。 另请参阅SELECT INTO OUTFILE local? 了解更多细节和解决方法。
系统和Linux
  有关在运行systemd的Linux系统上写入/tmp注意事项 : 
 最初张贴这个几年后,我发现自己无法find写入/tmp通过的文件 
 ...INTO OUTFILE '/tmp/outfile.csv' 
 在使用systemd运行Fedora Linux的MariaDB 5.5服务器上。 该文件/tmp/outfile.csv按照指定直接写入/tmp/outfile.csv ,而是在/tmp下的systemd目录下创build的: 
 /tmp/systemd-mariadb.service-XXXXXXX/tmp/outfile.csv 
 虽然文件outfile.csv本身和tmp/子目录都创build了全局可写的,但systemd服务目录本身拥有700个权限,并且是root拥有的,需要使用sudo访问来检索其中的文件。 
 将MariaDB中的绝对path指定为/tmp/outfile.csv并将其指定为outfile.csv ,而不是将MariaDB的绝对path指定为当前选定数据库的MariaDB数据目录。 
我怀疑你正在寻找你的客户机上的文件。
  SELECT .. INTO OUTFILE将文件写入服务器机器。 
举个例子:
我已经在MySQL Workbench中运行下面的查询,我发现我的文件
 SELECT * FROM `db`.`table` INTO OUTFILE 'file.csv' FIELDS TERMINATED BY ','; 
d:\ WAMP \ BIN \ mysql的\ mysql5.6.17 \ DATA \ DB \ FILE.CSV
你可以使用下面的例子来设置你的文件path:
 SELECT * FROM `db`.`table` INTO OUTFILE 'C:\\file.csv' FIELDS TERMINATED BY ','; 
我发现我的INTO OUTFILE文件,使用下面的命令创build
select name from users into outfile "name.csv"
在以下位置
C:\ ProgramData \ MySQL \ MySQL Server 5.6 \ data \ name.csv
这可能是默认的位置,因为我从来没有改变任何东西。
 如果在OS X上有任何人遇到这个问题,安装了自制软件的mysql默认输出位于/usr/local/var/mysql/database-name/ 
 你可以在C:\wamp\bin\mysql\mysql5.5.24\datafind这个文件,但是如果你select * from carro where id_cor<4 INTO OUTFILE 'C:\Users\Name\carro.txt';了以下select * from carro where id_cor<4 INTO OUTFILE 'C:\Users\Name\carro.txt'; 
 所以,只要写出.....OUTFILE 'C:\carro.txt'来获取data文件夹中名为carro.txt的文件