在MySQL中找不到outfile创建的文件
我正在使用以下查询来创建CSV文件
SELECT email INTO OUTFILE "mydata.csv"FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'
LINES TERMINATED BY "\n"
FROM users;
但是当我通过filezilla搜索时,无法在任何地方找到mydata.csv文件。
知道该文件的存储位置吗?
查询成功运行,没有任何错误!有帮助吗?
回答:
例如,MySQL可能正在将文件写入其自己的数据目录/var/lib/mysql/<databasename>
。要指定路径,请使用完整路径。
但是,该目录必须是运行MySQL服务器守护程序的用户帐户可写的目录。因此,我将经常使用/tmp
:
指定要写入的路径,如下所示:
INTO OUTFILE '/tmp/mydata.csv'
请注意,MySQL会将文件写入MySQL 服务器上 ,而不是客户端计算机上。因此,远程连接将在远程服务器上创建输出文件。另请参见SELECT INTO
OUTFILE local?有关更多详细信息和解决方法。
系统和Linux
以下命令 :
最初发布此文件的几年后,我发现自己无法找到/tmp
通过写入的文件
...INTO OUTFILE '/tmp/outfile.csv'
在运行带Fedora Linux的MariaDB
5.5服务器上systemd
。/tmp/outfile.csv
该目录和文件不是在指定的位置直接写入文件,而是在以下目录中的systemd目录下创建的/tmp
:
/tmp/systemd-mariadb.service-XXXXXXX/tmp/outfile.csv
虽然文件outfile.csv
本身和tmp/
子目录都是可全局创建的,但是systemd服务目录本身具有700个权限,并且是root拥有的,需要sudo
访问权限才能在其中检索文件。
并非按预期将MariaDB中的绝对路径/tmp/outfile.csv
指定为,也没有将其相对地指定为outfile.csv
,而是按预期将文件写入当前所选数据库的MariaDB数据目录中。
以上是 在MySQL中找不到outfile创建的文件 的全部内容, 来源链接: utcz.com/qa/416427.html