Я переместил все вещи в /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.