Le 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
Ici, il est republié. Allez voter l'original si vous le pouvez sur super utilisateur.
Après une certaine confusion générale sur 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 vers le nouvel emplacement.
Voici ma solution:
Arrêtez d'abord MySQL pour que rien de bizarre ne se passe pendant que vous jouez:
$ sudo stop mysql
Déplacez ensuite tous les répertoires de la base de données vers leur nouveau domicile:
$ sudo mv /var/lib/mysql/<all folders> /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
ajouter des lignes:
/new-mysql-dir/ r,
/new-mysql-dir/** rwk,
Dites ensuite à mysql que le datadir a bougé:
$ sudo vim /etc/mysql/my.cnf
changer de ligne:
datadir=/var/lib/mysql
à:
datadir=/my-new-db-dir/
REMARQUE: Selon la configuration de votre base de données, vous devrez peut-être également modifier innodb-data-home-dir, etc.
Redémarrez ensuite AppArmor pour lire 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 t'aides!