#mysql50#lost+found

Vous installâtes MySQL et le configurâtes rigoureusement. Vous déplaçâtes même le tablespace sur une partition dédiée, pour des raisons de performance et de maintenance. Vous démarriez alors le service, rempli par le sentiment du travail bien fait. Par professionnalisme, vous vérifiâtes les logs; et là! Horreur:

[text toolbar=”false”]120710 10:14:40 [ERROR] Invalid (old?) table or database name ‘lost+found'[/text]
“Mais what the f¤#k?!” vous exclamâtes vous!

A force d’observation, vous découvrîtes un autre symptôme: la présence d’une base de donnée #mysql50#lost+found
[sql toolbar=”false”]mysql> SHOW DATABASES;
+———————+
| Database |
+———————+
| information_schema |
| #mysql50#lost+found |
| mysql |
| performance_schema |
+———————+
4 rows in set (0.00 sec)[/sql]
C’est pas très joli tout ça et ça peut faire planter les scripts de sauvegarde écrit un peu trop vite…

Dans un élan de logique primitive, vous essayâtes de supprimer la base de données.
[sql toolbar=”false”]mysql> DROP DATABASE ‘#mysql50#lost+found’;
ERROR 1008 (HY000): Can’t drop database ‘#mysql50#lost+found’; database doesn’t exist[/sql]

Vous comprîtes bien vite l’origine de cette base de donnée: la présence du dossier lost+found sous le point de montage de votre partition. Avouez-le, l’idée de supprimer le dossier lost+found vous a même traversé l’esprit. Mais non, ça, c’était trop mal!

Lost+found étant une caractéristique de l’extFS, il était toujours possible de changer de système de fichier; mais il vous semblât que ce fusse un peu extrême comme solution, d’autant plus que le choix du FS était le résultat d’une étude.

Vous vous dîtes alors qu’une petite recherche Google s’imposait. Ainsi, vous découvrîtes que le bug est connu de la communauté: ticket #22615; et qu’il est même déjà résolu: à partir de la 5.6.3, avec le paramètre ignore-db-dir. Malheureusement, vous n’aviez pas la liberté de monter en version…

En conséquence, une seule solution s’offrait à vous: déplacer le tablespace vers un sous-dossier de la partition et reconfigurer votre MySQL

[shell toolbar=”false”][mysqld]
datadir=/mnt/mysql/data/[/shell]

One thought on “#mysql50#lost+found

  1. Ce conseil est affreusement contraire à FHS !! Selon la Bible http://www.pathname.com/fhs/pub/fhs-2.3.html#MNTMOUNTPOINTFORATEMPORARILYMOUNT
    “The content of this directory is a local issue and should not affect the manner in which any program is run.”
    À moins de faire des bases de données temporaires, ne vaudrait-il pas mettre tout cela dans /var/lib/mysql/data
    avec /var/lib/mysql comme point de montage ?

    Merci quand même d’avoir répondu à ma requête google 🙂

Leave a Reply

Your email address will not be published. Required fields are marked *