Норлинг-младший спас мой день с помощью подсказки AppArmor, но, поскольку у меня возникли некоторые проблемы с настройкой, я пишу более подробный ответ. Я использую Ubuntu 12.04.
Начните получать права root, чтобы избавиться от необходимости вводить все эти sudos:
sudo su -
После MySQL docs вы сначала перемещаете свою уже созданную директорию базы данных в другой путь:
mv /var/lib/mysql/yourdatabase /new/path/
Здесь была моя первая ловушка. Проверьте, есть ли у пользователя mysql доступ к этому новому пути:
sudo -u mysql ls /new/path/yourdatabase
Если вам отказано в доступе, вам, вероятно, следует дать разрешение на выполнение каждому родительскому каталогу:
chmod a+x /new /new/path/
Проверить, чтобы снова получить доступ к файлу. Если это все еще не работает, попробуйте задать вопрос в переполнении стека: -)
Свяжите новое местоположение каталога и предоставьте ему правильные разрешения:
ln -s /new/path/yourdatabase /var/lib/mysql/
chown mysql:mysql /var/lib/mysql/yourdatabase
Давайте отредактируем локальный файл конфигурации AppArmor. Вы не должны изменять файл /etc/apparmor.d/usr.sbin.mysqld. Отредактируйте локальный конф, чтобы вы не потеряли его после обновления системы:
emacs /etc/apparmor.d/local/usr.sbin.mysqld
добавить конфигурации Norling Jr.:
/new/path/yourdatabase/ r,
/new/path/yourdatabase/** rwk,
Не пропустите последнюю запятую. Сохраните файл и перезагрузите конфигурацию AppArmor:
apparmor_parser -r /etc/apparmor.d/usr.sbin.mysqld
Это не только перезагрузит конфигурацию AppArmor MySql, но и протестирует ее, если нет синтаксической ошибки (очень важная вещь). Если вы не запустите парсер, новый conf не будет применен.
Наконец, просто откройте клиент MySQL и введите SHOW DATABASES
. Если ваша база данных появляется, вероятно, все в порядке. Введите «USE yourdatabase» для другой проверки.
Более надежный тест также перезагрузит службу mysql: перезапуск службы mysql и попытается получить доступ к вашей базе данных.
Теперь я запомню в следующий раз, когда мне нужно будет это сделать. Google и SO вместе - лучший ноутбук в мире: -)