apparmor ブロック mysql 開始

apparmor ブロック mysql 開始

私は Ubuntu 12.04 を実行しており、mysql サーバーのデータディレクトリ (所有権と権限は同じまま) を /var/lib/mysql から /etc/mysql/my.cnf の /u/apps/mysql に移動し、/etc/apparmor.d/usr.sbin.mysqld を更新して以下を含めました。

/u/apps/mysql r,
/u/apps/mysql/** rwk,

しかし、エラーが発生します:

InnoDB: Reading tablespace information from the .ibd files...
130906 13:55:31  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 .
InnoDB: File operation call: 'opendir'.
InnoDB: Cannot continue operation.

そこで apparmor を無効にして起動します。開こうとしているディレクトリは '.' のようです。/u/apps/mysql だと思っていましたが、どうやら違うようです。apparmor の設定を変更してからは確実に進んでいますが、何が問題なのかわかりません。何が起こっているのか、何かアイデアはありますか? ありがとうございます...

答え1

mysql datadir の権限に問題があるようです

  130906 13:55:31  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.

datadir の権限を変更し、所有権を mysql に変更することはできますか。これが完了したら、Mysql を再起動します。

答え2

元のエントリが「/var/lib/mysql/** rwk」で、/u/apps/mysqlが明らかにmysql.mysqlによって所有されていたのに、apparmorが「/u/apps/mysql/** rwk」で躊躇したのはなぜかわかりませんが、設定を「/u/apps/** rwk」に変更するとうまくいきました。

関連情報