Super utilisateur a de belles instructions étape par étape sur la façon de résoudre ce problème
Voici un autre ensemble d'instructions pour faire la même chose http://www.ubuntugeek.com/how-to-change-the-mysql-data-default-directory.html
Le voici de nouveau posté. Allez voter pour l'original si vous le pouvez sur Super utilisateur.
Après une certaine confusion générale concernant les autorisations, j'ai réalisé que le problème n'était pas que je n'avais pas mes autorisations et mes chemins corrects mais qu'AppArmor empêchait MySQL de lire et d'écrire dans le nouvel emplacement.
Voici ma solution:
Arrêtez d'abord MySQL pour éviter tout problème pendant la manipulation :
$ sudo stop mysql
Ensuite, déplacez tous les répertoires de bases de données vers leur nouvel emplacement :
$ sudo mv /var/lib/mysql/ /new-mysql-dir/
Ne déplacez pas les fichiers, ils seront générés par MySQL, déplacez simplement les dossiers (qui sont les bases de données).
Ensuite, demandez poliment à AppArmor d'autoriser MySQL à utiliser le nouveau dossier :
$ sudo vim /etc/apparmor.d/usr.sbin.mysqld
ajoutez les lignes :
/new-mysql-dir/ r,
/new-mysql-dir/** rwk,
Ensuite, indiquez à MySQL que le datadir a été déplacé :
$ sudo vim /etc/mysql/my.cnf
changez la ligne :
datadir=/var/lib/mysql
à :
datadir=/my-new-db-dir/
REMARQUE : Selon votre configuration de base de données, vous pourriez avoir besoin de modifier également innodb-data-home-dir, etc.
Ensuite, redémarrez AppArmor pour prendre en compte les nouveaux paramètres :
$ sudo /etc/init.d/apparmor restart
Et redémarrez MySQL en utilisant le nouveau datadir :
$ sudo start mysql
J'espère que cela vous aidera !