Linux
找不到mysql查詢的OUTFILE
我有一個 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 的完全權限。但是當我執行查詢時,不確定文件的保存位置。有什麼建議麼 ?
您已
/var/lib/mysql/tmp
在數據庫伺服器的配置中指定為臨時目錄,但您確實在查詢中指定該文件應保存在/tmp
. 因此,您應該在該目錄下找到該查詢產生的文件/tmp
。但是,如果您使用帶有 systemd 的伺服器並且為 db 啟用了 privatetemp,那麼即使您在查詢中指定了絕對路徑,該文件也可能會儲存在 privatetemp 文件夾下。私人臨時文件夾將類似於
/tmp/systemd-mariadb.service-XXXXXXX/tmp/outfile.csv
.