mysql 查询 into outfile 文件导到哪里去了?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mysql 查询 into outfile 文件导到哪里去了?相关的知识,希望对你有一定的参考价值。

select * from t into outfile 'test.txt';

结果我搜索整个硬盘都没找到test.txt, mysql是装在本地

在mysql安装路径(可以通过select @@basedir from dual;)下data里中自己导出table名字的文件夹里 (如果文件自己没有权限打开通过修改权限可以进入查看sudo chmod 777 文件名) 参考技术A 或者找一下看看mysql安装的时候有没有my.ini 或者my.cnf文件看下secure_file_priv这个参数后边的值是什么 参考技术B 写绝对路径

MySQL 如何使用 INTO OUTFILE 附加到文件?

【中文标题】MySQL 如何使用 INTO OUTFILE 附加到文件?【英文标题】:MySQL how do you append to a file with INTO OUTFILE? 【发布时间】:2012-04-01 01:06:40 【问题描述】:

我有以下代码:

SELECT * INTO OUTFILE'~/TestInput/Results.csv'      
FIELDS TERMINATED BY ','
LINES TERMINATED BY '\n'
FROM Results;

期望的结果是不断追加到Results.csv

【问题讨论】:

【参考方案1】:

您可以合并结果并立即写入。 TEE 将记录所有可能不需要的内容。在你的情况下:

SELECT * FROM Results UNION 
SELECT * FROM Results INTO OUTFILE '~/TestInput/Results.csv';

【讨论】:

【参考方案2】:

SELECT INTO OUTFILE 无法做到这一点。该命令只会创建新文件,如果文件已经存在,则会失败。

您可以在 MySQL 客户端中使用 TEE 命令将查询输出附加到现有文件。

这是您使用 TEE 将两个查询结果附加到同一文件的示例:

TEE ~/TestInput/Results.csv

SELECT * 
FROM Results;

SELECT * 
FROM Results;

NOTEE

【讨论】:

如何将其包装在存储过程中并首先检查文件是否存在(在使用 TEE 之前)? 如果要先检查文件是否存在,应该使用脚本语言(python、bash、perl 等)而不是存储过程。【参考方案3】:

直接在 MySQL 中是不可能的。但是您可以尝试在文件名中添加日期时间部分,然后使用“cat”(UNIX 命令)或“type”(DOS 命令)将一些文件组合成一个新文件。

帮助:cat (Unix)

【讨论】:

谢谢。链接已更改。

以上是关于mysql 查询 into outfile 文件导到哪里去了?的主要内容,如果未能解决你的问题,请参考以下文章

Mysql select into outfile 命令

“ INTO OUTFILE ”语句未完成而终止,锁定文件

用于导出的 INTO OUTFILE 查询在本地驱动器上不起作用

mysql 存储过程中的select into outfile语句生成的文件放哪里

Mysql 使用 select into outfile

MySQL 如何使用 INTO OUTFILE 附加到文件?