Ubuntu 12.04 LTSでMySQLのdatadirを変更したときのAppArmorプロファイル

/usr/sbin/mysqldに対してAppArmorのプロファイルが設定されているので、例外設定を追加するためのファイル /etc/apparmor.d/local/usr.sbin.mysqld に追記すればOK。例えば /store1/mysql に動かした場合は以下を追記する。

/store1/mysql/ r,
/store1/mysql/** rwk,

で、AppArmorのプロファイルを変更したら再読込させるのはservice restartでできる。

# service apparmor restart


まとめると、datadirを変更するのは以下だけでいける。my.cnfでdatadirを変更せずシンボリックリンクでやってるのは趣味ですのでどちらでも。

# service mysql stop
# mv /var/lib/mysql /store1/
# ln -s /store1/mysql /var/lib/mysql
# vi /etc/apparmor.d/local/usr.sbin.mysqld
+ /store1/mysql/ r,
+ /store1/mysql/** rwk,
# service apparmor restart
# service mysql start