Я использую Ubuntu 12.04 и переместил каталог данных для моего сервера MySQL (сохранив тех же владельцев и разрешения) из /var/lib/mysql в /u/apps/mysql в /etc/mysql/my.cnf, затем я обновил /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
ну, я не уверен, почему apparmor отклонился от "/u/apps/mysql/** rwk", когда исходная запись была "/var/lib/mysql/** rwk" и /u/apps/mysql явно принадлежал mysql.mysql, но когда я изменил настройку на "/u/apps/** rwk", и это заработало