我使用以下查询来创建一个CSV文件
SELECT email INTO OUTFILE "mydata.csv"
FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'
LINES TERMINATED BY "\n"
FROM users;
但是当我在filezilla中搜索时,我在任何地方都找不到mydata.csv文件。
你知道这个文件存储在哪里吗?
查询成功运行,没有任何错误!有什么帮助吗?
发布于 2012-07-14 22:27:23
MySQL可能会将文件写入自己的数据目录,例如/var/lib/mysql/<databasename>
。要指定路径,请使用完整路径。
但是,它必须是一个可由运行MySQL服务器守护程序的用户帐户写入的目录。因此,我将经常使用/tmp
指定要写入的路径,如下所示:
INTO OUTFILE '/tmp/mydata.csv'
请注意,MySQL将在MySQL服务器上写入文件,而不是在您的客户机上。因此,远程连接将在远程服务器上创建输出文件。另请参阅SELECT INTO OUTFILE local ?了解更多详细信息和解决方法。
Systemd和Linux
有关在运行/tmp
systemd
的系统上写入的说明
在最初发布这篇文章几年后,我发现自己无法找到通过
...INTO OUTFILE '/tmp/outfile.csv'
在运行带有systemd
的Fedora Linux的MariaDB 5.5服务器上。该目录和文件是在/tmp
中的systemd目录下创建的,而不是按照指定将文件直接写入/tmp/outfile.csv
/tmp/systemd-mariadb.service-XXXXXXX/tmp/outfile.csv
虽然文件outfile.csv
本身和systemd子目录都是完全可写的,但tmp/
服务目录本身具有700个权限,属于超级用户所有,因此需要sudo
访问权限才能检索其中的文件。
没有将MariaDB中的绝对路径指定为/tmp/outfile.csv
并将其相对指定为outfile.csv
,而是按照预期将该文件写入到当前选定数据库的MariaDB数据目录中。
发布于 2012-07-14 23:07:58
我怀疑您正在客户机上查找该文件。
SELECT .. INTO OUTFILE
将文件写到服务器机器上。
发布于 2015-02-03 22:09:23
举个例子:
我已经在MySQL工作台中运行了以下查询,我在以下位置找到了我的文件
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 ',';
https://stackoverflow.com/questions/11484471
复制相似问题