0. 要約
UnixではAppArmorでソフトウェアごとに動作の制限を管理しているため、
ファイル、ディレクトリの権限付与済アカウントでソフトウェアを実行した場合でも、
"permission denid"のエラーが発生する場合がある。
(エラー対処方法)
/etc/apparmor.d/<設定ファイル>
設定ファイル内へ実行権限を与えたいディレクトリのパスを追加する。
1.問題
mysqlのdatadirを権限付与済のディレクトリへ変更したとき、下記エラーが発生した。
can't create <ディレクトリ> (Errcode: 13 - Permission denied)
2. 対処
Apparmorがソフトウェアの動作制限を管理しているので、
設定ファイル(/etc/apparmor.d/usr.sbin.mysqld)に変更先のディレクトリを追記した。
# Allow data dir access
- /var/lib/mysql/ r,
- /var/lib/mysql/** rwk,
+ /mysqldb/data/ r,
+ /mysqldb/data/** rwk,
## 参考
・AppArmor
https://ja.wikipedia.org/wiki/AppArmor
http://www.usupi.org/sysad/220.html
https://matoken.org/blog/2018/02/18/i-changed-mysqls-datadir-and-it-got-scolded-by-apparmor-and-it-not-start/