Le super utilisateur a des instructions détaillées pour résoudre ce problème
Voici un autre ensemble d’instructions pour faire la même chose
lien
Ici, il est republié. Allez-y voter l'original si vous le pouvez sur super utilisateur.
Après une certaine confusion générale concernant les autorisations, je me suis rendu compte que le problème n’était pas que je n’avais pas les droits et les droits nécessaires, mais que AppArmor empêchait MySQL de lire et d’écrire dans le nouvel emplacement.
Voici ma solution:
D'abord, arrêtez MySQL pour que rien de bizarre ne se passe quand vous tripotez:
$ sudo stop mysql
Ensuite, déplacez tous les répertoires de la base de données vers leur nouveau répertoire:
$ 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,
Puis dites à 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: en fonction de la configuration de votre base de données, vous devrez peut-être également modifier innodb-data-home-dir, etc.
Puis redémarrez 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 ça aide!