J'obtenais l'erreur suivante lorsque j'essayais de changer le répertoire de données dans le serveur Ubuntu 10.04.
100809 19:33:00 [Note] Plugin 'FEDERATED' is disabled.
/usr/sbin/mysqld: Can't find file: './mysql/plugin.frm' (errno: 13)
100809 19:33:00 [ERROR] Can't open the mysql.plugin table. Please run mysql_upgrade to create it.
100809 19:33:00 InnoDB: Operating system error number 13 in a file operation.
InnoDB: The error means mysqld does not have the access rights to
InnoDB: the directory.
InnoDB: File name ./ibdata1
InnoDB: File operation call: 'create'.
InnoDB: Cannot continue operation.
mysql
ubuntu-10.04
directory
Norling Jr.
la source
la source
Réponses:
Après une certaine confusion générale sur les autorisations, l'OP s'est rendu compte que le problème n'était pas qu'il n'avait pas les autorisations et les droits d'accès mais qu'AppArmor empêchait MySQL de lire et d'écrire vers le nouvel emplacement.
Voici sa solution:
Arrêtez d'abord MySQL pour que rien de bizarre ne se passe pendant que vous jouez:
Déplacez ensuite tous les répertoires de la base de données vers leur nouveau domicile:
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:
Dites ensuite à mysql que le datadir a bougé:
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:
Et redémarrez MySQL en utilisant le nouveau datadir:
la source
/new-mysql-dir/ r
sinon il sera toujours refusé. Des trucs Linux basiques mais je n'arrive jamais à obtenir les barres obliques correctes.