Супер користувач має хороші покрокові інструкції, як вирішити цю проблему
Ось інший набір інструкцій щодо того ж, що робити те саме
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, що datadir перемістився:
$ 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
Сподіваюся, це допомагає!