Super user ha una bella istruzione passo-passo su come risolvere questo problema
Ecco un'altra serie di istruzioni su come fare la stessa cosa
http://www.ubuntugeek.com/how-to-change-the-mysql-data-default-directory.html
Qui è ripubblicato. Vai e vota l'originale se puoi su un superutente.
Dopo un po 'di confusione generale sulle autorizzazioni, mi sono reso conto che il problema non era che non avevo le autorizzazioni e i percorsi corretti, ma che AppArmor impediva a mysql di leggere e scrivere nella nuova posizione.
Questa è la mia soluzione:
Per prima cosa ferma MySQL, quindi non succede nulla di strano mentre stai armeggiando:
$ sudo stop mysql
Quindi spostare tutte le directory del database nella loro nuova home:
$ sudo mv /var/lib/mysql/<all folders> /new-mysql-dir/
Non spostare i file, saranno generati da mysql, basta spostare le cartelle (che sono i database).
Quindi, cortesemente, chiedi ad AppArmor di consentire a mysql di utilizzare la nuova cartella:
$ sudo vim /etc/apparmor.d/usr.sbin.mysqld
aggiungi linee:
/new-mysql-dir/ r,
/new-mysql-dir/** rwk,
Quindi dire a mysql che il datadir si è spostato:
$ sudo vim /etc/mysql/my.cnf
cambia la linea:
datadir=/var/lib/mysql
a:
datadir=/my-new-db-dir/
NOTA: a seconda della configurazione del database potrebbe essere necessario modificare anche innodb-data-home-dir ecc.
Quindi riavviare AppArmor per leggere le nuove impostazioni:
$ sudo /etc/init.d/apparmor restart
E riavvia MySQL usando il nuovo datadir:
$ sudo start mysql
Spero che sia di aiuto!