MySQLでのエラー File '/home/xxx/abc.csv' not found (Errcode: 13)29の対処の1つ
MySQLでのエラーでLoad data infieでのエラー。
まぁ、環境によっては、簡単に対応できたりとかするんだけど
Ubuntu 14.04
MySQL 5.5
での環境で起きたエラー。これ解決するのに時間かかった。
原因は、セキュリティの変更。
解決は、セキュリティの例外登録
1. ルート権限で、 /etc/apparmor.d/usr.sbin.mysqld を開く。
2. ApparmorがMySQLに対して許可しているフォルダのパスのリストが表示される。
そこにインポートファイルのあるフォルダを追加し保存する。
#mysqlの許可しているところ
/usr/sbin/mysqld {
<省略>
/var/log/mysql.log rw,
/var/log/mysql.err rw,
/var/lib/mysql/ r,
/var/lib/mysql/** rwk,
/var/log/mysql/ r,
/var/log/mysql/* rw,
/var/run/mysqld/mysqld.pid rw,
/var/run/mysqld/mysqld.sock w,
/run/mysqld/mysqld.pid rw,
/run/mysqld/mysqld.sock w,
#ここから辺にインポートファイルのあるフォルダパスを追加
/home/xxx/ r,
/home/xxx/* rw,
/sys/devices/system/cpu/ r,
# Site-specific additions and overrides. See local/README for details.
#include <local/usr.sbin.mysqld>
}
3. 適用されたApparmorの設定ファイルを反映させる。
# /etc/init.d/apparmor reload
4. MySQLの再起動
# service mysql restart
で、Load data infileが動きます。
もし、「あれ? パーミッション合ってるけど、ならない」とか「アップロードしたファイルをインポートで、not found (Errcode: 13)29が出る」とかなら
これも確認してみてください。
コメント
0 件のコメント :
コメントを投稿