Si vous voulez déplacer le répertoire par défaut où sont stockés les paramètres et les bases de données de MySQL, sur un serveur Ubuntu, vous allez rapidement être confrontés, à des erreurs lors du redémarrage de votre serveur MySQL.
Avec mon équipe,il y a quelques jours en voulant déplacer le répertoire par défaut de MySQL sur un Ubuntu Server 10.10, nous avons été confronté à une rafale d'erreurs suivantes :
100809 09:30:00 [Note] Plugin 'FEDERATED' is disabled.
/usr/sbin/mysqld: Can't find file: './mysql/plugin.frm' (errno: 13)
100809 09:30:00 [ERROR] Can't open the mysql.plugin table. Please run mysql_upgrade to create it.
100809 09:30: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.
Dans le fichier de configuration de MySQL /etc/mysql/my.cnf, nous avions bien modifié la variable datadir. Et l'erreur persistait !
Nous faisions le même genre de modifications, sur nos autres serveurs sans aucuns problèmes ... Quelque chose avait changé, mais quoi ?
APPARMOR :(
En effet, le système de protection AppArmor, doit être modifié, pour autoriser la prise en compte du changement de répertoire.Il faut éditer le fichier /etc/apparmor.d/usr.sbin.mysqld, et modifier les 2 lignes qui pointent vers l'ancien répertoire :
# /var/lib/mysql/ r,
# /var/lib/mysql/** rwk,
/nouveau répertoire/ r,
/nouveau répertoire/** rwk,
Un petit service apparmor restart, suivit d'un service mysql restart et hop, hop, hop, tout redémarre sans problème !