揮発性のメモ2

組込みLinux開発を通じて得た知識と通じずに得た知識をメモ書きしておく

mysqldumpでエラーになる問題2

/tmp/hogeディレクトリに出力しようとしてエラーとなる

$ mkdir -p -m777 /tmp/hoge

$ mysqldump -uhoge -ppiyo fuga --tab=/tmp/hoge
mysqldump: Got error: 1: "Can't create/write to file '/tmp/hoge/SEQUENCE.txt' (Errcode: 2 "No such file or directory")" when executing 'SELECT INTO OUTFILE'

mysqldumpでエラーになる問題 - 揮発性のメモ2
昔は原因がわからなかったが、ようやく理解できた。



systemd には PrivateTmp とかいう機能があり、/tmpディレクトリなどをサービスごとに隠蔽することができる。
/tmp/systemd-private-xxxxxxxx-mariadb.service-xxxxxx
みたいな長い名前のディレクトリがあって、その中にそのサービスの仮ファイルとかが置かれる。

この場合、/tmp/hoge を作ったものの MariaDB から見える /tmp には当然そのディレクトリは無いので エラーとなった。


よって、/tmp以外の適当な場所( /work とか)を指定すれば良い