vikkeの趣味やらなんやらのごった煮blog

趣味の技術や音楽やバイクや写真のページ

ubuntuのmysqlのdatadirを移動させる

元記事 https://qiita.com/vikke/items/ed5ffcbb4ccc21ba37e3

ubuntu 13.10のmysqlのdatadirを /var/lib/mysqlから、partitionの容量の問題で、/home/mysqlに移動させ、/etc/mysql/my.cnfのdatadirを書き換えた。らば、動かなくなった。

/var/log/mysql/error には次のようなエラーが。

1
2
/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を次のように改変。

1
2
3
4
5
6
32,33c32,33
< /var/lib/mysql/ r,
< /var/lib/mysql/** rwk,
---
> /home/mysql/ r,
> /home/mysql/** rwk,

で動くようになった。
これはわからんわー。qiitaでもapparmorで検索しても数件しかhitしない。