Назад | Перейти на главную страницу

MySQL не запускается после создания символьной ссылки на каталог данных

Я переместил все вещи в /var/lib/mysql к /500gb/mysql, и создал символическую ссылку от одного к другому. Затем я сделал chown mysql:mysql и chmod 777 (с обоими -h и -R, если необходимо) для обоих /var/lib/mysql символическая ссылка, а также /500gb/mysql.

ls -al /var/lib дает мне:

lrwxrwxrwx  1 mysql         mysql         15 2011-07-27 12:55 mysql -> /500gb/mysql

Когда я пытаюсь запустить MySQL (service mysql start), Я получаю следующее в /var/log/mysql/error.log:

110727 12:48:32 [Note] Plugin 'FEDERATED' is disabled.
/usr/sbin/mysqld: Can't find file: './mysql/plugin.frm' (errno: 13)
110727 12:48:32 [ERROR] Can't open the mysql.plugin table. Please run mysql_upgrade to create it.
110727 12:48:32  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.

Обе /500gb/mysql/ibdata1 и /500gb/mysql/mysql/plugin.frm существуют и принадлежат mysql. В чем дело?

Кроме того, MySQL, кажется, иногда сбивает мою символическую ссылку. После ряда неудачных запусков он исчезает и становится обычным каталогом.

Я также пробовал отредактировать свой /etc/mysql/my.cnf и установка datadir = /500gb/mysql без везения.

Любые идеи? Спасибо.

Оказывается, что Apparmor облажался. Нам пришлось отредактировать этот файл: /etc/apparmor.d/usr.sbin.mysql.

Многие демоны UNIX отказываются работать с файлами, имеющими слишком мягкие права доступа (слишком много людей имеют к ним доступ для чтения / записи). Попробуйте запустить:

find /500gb/mysql -type f -exec chmod a-x {} \;
chmod -R u+rwX,go-rwx /500gb/mysql
chown -Rh mysql:mysql /500gb/mysql

А затем запустите MySQL.