Publicité
Mysql error (13)

Hier, mon collègue a eu de la casse sur sa VM Linux (virtualbox). Grub ne trouve pas la partition de boot ... Il existe plusieurs solutions plus ou moins périlleuses suivant l'expérience que l'on a de Linux. La plus simple est de tenter la ré-install depuis l'ISO. Ça prend tout au plus 15 minutes. On avait juste presque oublié qu'il faudrait reconfigurer/ré-installer la plupart des services (nginx, mysql). Comme on avait été un peu malin, on avait recopié les configurations Nginx. Pour la plupart des services, ça se passe bien. Ça c'est un poil corsé avec Mysql. Une erreur un peu inattendu après une redémarrage, alors qu'avant le mysql fonctionnait très bien.

 Dans le navigateur on avait une ligne :

Can't connect to local MySQL server through socket '/var/mysql/mysqld.sock' (2)

Dans la log (/var/log/mysql/error.log

140420 22:42:56 [Warning] Using unique option prefix myisam-recover instead of myisam-recover-options is deprecated and will be removed in a future release. Please use the full name instead.
140420 22:42:56 [Note] Plugin 'FEDERATED' is disabled.
/usr/sbin/mysqld: Can't find file: './mysql/plugin.frm' (errno: 13)

 -----

150422  9:30:54 [ERROR] /usr/sbin/mysqld: Can't find file: './lcp_country_fr/drupal_cache_bootstrap.frm' (errno: 13)
150422  9:30:54 [ERROR] /usr/sbin/mysqld: Can't find file: './lcp_country_fr/drupal_semaphore.frm' (errno: 13)
150422  9:30:54 [ERROR] /usr/sbin/mysqld: Can't find file: './lcp_country_fr/drupal_semaphore.frm' (errno: 13)

Avec ce genre d'indice on peut chercher un moment, alors que la solution est simple. On commence donc à fouiller l'internet mondial et on fini par avoir un indice. Cet indice c'est apparmor.
Pour mémoire apparmor c'est un peu le monsieur sécurité dans Ubuntu pour les applications. Tout de suite je fais la relation. J'avais déjà écrit quelques lignes à son sujet ici

Comme nous avons beaucoup de bases de données assez lourdes qu'il vaut mieux ne pas perdre, nous les plaçons sur la partition /home . De base, l'application Mysql n'a pas accès à se répertoire. Il faut donc l'autorisé via Apparmor en modifiant le fichier de configuration qui concerne mysql.

Le fichier ce trouve ici (pour 13.10) /etc/apparmor.d/usr.sbin.mysqld

Commentez les lignes (le # indique un commentaire)

#  /var/lib/mysql/ r,
#  /var/lib/mysql/** rwk,

Ajoutez les lignes

  /home/mysql/ r,
  /home/mysql/** rwk,

Redémarrez ou rechargez Apparmor

sudo service apparmor reload

Normalement tout est rétabli, sinon il va falloir encore chercher sur l'internet mondial.


Vous avez aimé cet article ? Alors partagez-le avec vos amis en cliquant sur les boutons ci-dessous :


Commentaires

  • Aucun commentaire trouvé

Poster un commentaire en tant qu'invité

0

Publicité - Ce contenu peut vous intéresser - Test

La pub ça rapporte pas grand chose, en plus ça vous laisse d'horribles cookies non comestibles, autrement appelé trackers. Ce cookie est utilisé par DoubleClick (Google Adsense). Vous avez tout le droit de ne pas en vouloir et donc quitter cet excellent blog. Dans le cas contraire, vous l'acceptez et vous poursuivez le surf en toute connaissance de cause (par ailleurs j'utilise piwik).