Супер пользователь имеет хорошие пошаговые инструкции о том, как решить эту проблему
Вот еще один набор инструкций о том же:
http://www.ubuntugeek.com/how-to-change-the-mysql-data-default-directory.html
Здесь это перепечатано. Идите и проголосуйте за оригинал, если вы можете на супер пользователя.
После некоторой общей путаницы в отношении разрешений я понял, что проблема не в том, что у меня не были правильные права доступа и пути, а в том, что AppArmor препятствовал чтению и записи mysql в новом месте.
Это мое решение:
Сначала остановите MySQL, чтобы ничего странного не происходило во время игры:
$ sudo stop mysql
Затем переместите все каталоги базы данных в их новый дом:
$ sudo mv /var/lib/mysql/<all folders> /new-mysql-dir/
Не перемещайте файлы, они будут сгенерированы mysql, просто переместите папки (которые являются базами данных).
Затем вежливо попросите AppArmor разрешить mysql использовать новую папку:
$ sudo vim /etc/apparmor.d/usr.sbin.mysqld
добавить строки:
/new-mysql-dir/ r,
/new-mysql-dir/** rwk,
Затем скажите mysql, что датадир переместился:
$ sudo vim /etc/mysql/my.cnf
изменить строку:
datadir=/var/lib/mysql
чтобы:
datadir=/my-new-db-dir/
ПРИМЕЧАНИЕ. В зависимости от настроек базы данных вам может потребоваться изменить innodb-data-home-dir и т. Д.
Затем перезапустите AppArmor, чтобы прочитать новые настройки:
$ sudo /etc/init.d/apparmor restart
И снова запустите MySQL, используя новый datadir:
$ sudo start mysql
Надеюсь это поможет!