我有一个 MySql 查询,从中生成一个 OUTFILE (.csv),并将其保存在 /tmp 中。请查找以下查询:
SELECT 'Artifact ID' id, 'Related Links' new_value UNION select CONCAT(si.ID_PREFIX, si.ID_COUNT) as ID, tmp.NEW_VALUE from ( select ACTIVITY_ID, ISSUE_ID, OLD_VALUE, NEW_VALUE from SCARAB_ACTIVITY where ISSUE_ID in (select ISSUE_ID from SCARAB_ISSUE where MODULE_ID = 775) and (NEW_VALUE like 'http%') order by ACTIVITY_ID desc) tmp, SCARAB_ISSUE si where tmp.ISSUE_ID = si.ISSUE_ID INTO OUTFILE '/tmp/flexsustain_test_relatedlinks.csv' FIELDS ENCLOSED BY '' TERMINATED BY ',';
我已经尝试配置 /etc/my.cnf 文件
[mysqld]
datadir=/var/lib/mysql
tmpdir = /var/lib/mysql/tmp
socket=/var/lib/mysql/mysql.sock
read-only = 0
我还授予了 tmpdir 完全权限。但是当我运行查询时不确定文件保存在哪里。有什么建议 ?
答案1
您已/var/lib/mysql/tmp
在数据库服务器的配置中指定为临时目录,但您在查询中指定了文件应保存在/tmp
.因此,您应该在以下位置找到该查询生成的文件/tmp
。
但是,如果您使用带有 systemd 的服务器并且为数据库启用了 privatetemp,那么即使您在查询中指定绝对路径,该文件也可能会存储在 privatetemp 文件夹下。私人临时文件夹将类似于/tmp/systemd-mariadb.service-XXXXXXX/tmp/outfile.csv
.