mysqlクエリのOUTFILEが見つかりません。

mysqlクエリのOUTFILEが見つかりません。

OUTFILE(.csv)を生成して/ tmpに保存するMySqlクエリがあります。次のクエリを参照してください。

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が有効になっている場合は、クエリに絶対パスを指定しても、prietetempフォルダにファイルが保存されることがあります。プライベート一時フォルダは次のとおりです/tmp/systemd-mariadb.service-XXXXXXX/tmp/outfile.csv

おすすめ記事