Posted at

ubuntuのmysqlのdatadirを移動させる

More than 5 years have passed since last update.

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しない。