Ubuntuで/var/lib/mysqlを移動したらエラーが
開発環境(Ubuntu on VirtualBox)のディスク容量が少なくなってきたので、/var/lib/mysql を 別のディレクトリ ( /data の下)に移動して、シンボリックリンクを張ったんだけど、MySQL起動時に以下の様なエラーが出た。
/usr/sbin/mysqld: Can't find file: './mysql/plugin.frm' (errno: 13) 131203 18:27:23 [ERROR] Can't open the mysql.plugin table. Please run mysql_upgrade to create it. 131203 18:27:23 InnoDB: Initializing buffer pool, size = 8.0M 131203 18:27:23 InnoDB: Completed initialization of buffer pool 131203 18:27:23 InnoDB: Operating system error number 13 in a file operation. InnoDB: The error means mysqld does not have the access rights to InnoDB: the directory. InnoDB: File name ./ibdata1 InnoDB: File operation call: 'open'. InnoDB: Cannot continue operation.
結論から言うと、/etc/apparmor.d/usr.sbin.mysqld で、/data/mysql への権限を追加すればOK。
/var/lib/mysql/ r, /var/lib/mysql/** rwk, /data/mysql/ r, /data/mysql/** rwk,
環境: Ubuntu 10.04.4 (面倒なのでアップグレードしていない・・・)