我正在使用以下查询创建CSV文件
SELECT email INTO OUTFILE "mydata.csv"
FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'
LINES TERMINATED BY "\n"
FROM users;
但是我找不到我的数据.当我搜索filezilla时,csv文件在任何地方.
知道这个文件存储在哪里吗?
查询成功运行,没有任何错误!有什么帮助吗?
我正在使用以下查询创建CSV文件
SELECT email INTO OUTFILE "mydata.csv"
FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'
LINES TERMINATED BY "\n"
FROM users;
但是我找不到我的数据.当我搜索filezilla时,csv文件在任何地方.
知道这个文件存储在哪里吗?
查询成功运行,没有任何错误!有什么帮助吗?
MySQL可能正在将文件写入自己的数据目录,例如/var/lib/mysql/<databasename>
.要指定路径,请使用完整路径.
但是,它必须是一个可由MySQL服务器守护程序运行的用户帐户写入的目录.因此,我经常使用/tmp
:
指定要写入的路径,如中所示:
INTO OUTFILE '/tmp/mydata.csv'
请注意,MySQL将在MySQL server上编写文件,而不是在您的客户机上.因此,远程连接将在远程服务器上创建输出文件.有关更多详细信息和解决方法,请参见SELECT INTO OUTFILE local ?.
A note about writing to 100 on a Linux system running 101:
在最初发布这篇文章几年后,我发现自己找不到通过via写入/tmp
的文件
...INTO OUTFILE '/tmp/outfile.csv'
在运行Fedora Linux和systemd
的MariaDB 5.5服务器上.不是按照规定将文件直接写入/tmp/outfile.csv
,而是在/tmp
中的systemd目录下创建了该目录和文件:
/tmp/systemd-mariadb.service-XXXXXXX/tmp/outfile.csv
虽然文件outfile.csv
本身和tmp/
子目录都是创建为可写的,但systemd服务目录本身拥有700个权限,并且是root所有的,需要sudo
次访问才能检索其中的文件.
在MariaDB中,不是将绝对路径指定为/tmp/outfile.csv
,而是将其相对指定为outfile.csv
,而是按照预期将文件写入当前选定数据库的MariaDB数据目录中.