ubuntu 13.10のmysqlのdatadirを /var/lib/mysql
から、partitionの容量の問題で、/home/mysql
に移動させ、/etc/mysql/my.cnf
のdatadirを書き換えた。らば、動かなくなった。
/var/log/mysql/error には次のようなエラーが。
/usr/sbin/mysqld: Can't find file: './mysql/plugin.frm' (errno: 13)
140419 15:14:19 [ERROR] Can't open the mysql.plugin table. Please run mysql_upgrade to create it.
でも、/home/mysql/mysql/plugin.frm
は存在する。
さて。なんだろう?
調べた所、 http://askubuntu.com/questions/247568/unable-to-start-mysql-server-after-install-config が見つかった。どうもapparmorというsecurityの為のmiddleが上書いてたっぽい。
man apparmorすると色々書いてある。
とりあえず、 /etc/apparmor.d/usr.sbin/mysqld
を次のように改変。
32,33c32,33
< /var/lib/mysql/ r,
< /var/lib/mysql/** rwk,
---
> /home/mysql/ r,
> /home/mysql/** rwk,
で動くようになった。
これはわからんわー。qiitaでもapparmorで検索しても数件しかhitしない。