Réparer l’erreur MySQL : Table ‘./ma_base/ma_table’ is marked as crashed and last (automatic?) repair failed
J’ai sur mon serveur une tâche Cron qui met à jour mes flux RSS toutes les 15 minutes dans la base de données MySQL de RssLounge. Or, après une mise à jour de certains paquets de ma Ubuntu Server 10.04 (dont MySQL), plus moyen d’accéder à la table dans laquelle sont stockés ces flux. Que ce soit depuis l’application RssLounge ou depuis la ligne de commande, MySQL me renvoie l’erreur suivante :
Table ‘./ma_base/ma_table’ is marked as crashed and last (automatic?) repair failed
Ceci est tout simplement dû au fait que des opérations d’insertion sur cette table étaient en cours d’exécution au moment où la procédure de mise à jour a arrêté le service MySQL. Le fichier contenant les enregistrements, ma_table.MYI, est donc corrompu. Il existe cependant une procédure de réparation assez simple grâce à l’outil myisamchk présent avec l’installation de MySQL. Comme vous l’aurez compris, cette procédure n’est valable que pour les tables de type MyISAM.
Dans un premier temps, nous allons couper les services d’Apache et MySQL de façon à ne pas créer de nouveaux conflits durant la procédure de réparation.
$ sudo /etc/init.d/apache2 stop $ sudo /etc/init.d/mysql stop |
Nous allons ensuite vérifier que le fichier que nous souhaitons réparer contient bien des erreurs (en gros, qu’on a bien choisi le fichier corrompu) :
$ sudo myisamchk /var/lib/mysql/ma_base/ma_table.MYI Data records: 4945 Deleted blocks: 0 myisamchk: warning: Table is marked as crashed and last repair failed - check file-size myisamchk: warning: Size of indexfile is: 602112 Should be: 53248 - check record delete-chain - check key delete-chain - check index reference - check data record references index: 1 myisamchk: error: Found 4943 keys of 4945 - check record links myisamchk: error: Record-count is not ok; is 4943 Should be: 4945 myisamchk: warning: Found 1870736 deleted space. Should be 0 myisamchk: warning: Found 971 deleted blocks Should be: 0 myisamchk: warning: Found 9665 key parts. Should be: 4943 MyISAM-table '/var/lib/mysql/ma_base/ma_table.MYI' is corrupted Fix it using switch "-r" or "-o" |
Maintenant que nous sommes sûr qu’il s’agit de ce fichier, nous allons tout simplement tenter la procédure de réparation. La première chose à essayer (qui a fonctionné pour moi) est l’option « -r » ou « –recover ». Il s’agit d’une méthode de réparation efficace qui corrige à priori la majorité des problèmes de corruption dans une table. Dans le cas où cette méthode échouerai, l’option « -o » ou « –safe-recover » peut être tentée. On a donc :
$ sudo myisamchk -r /var/lib/mysql/ma_base/ma_table.MYI - recovering (with sort) MyISAM-table '/var/lib/mysql/ma_base/ma_table.MYI' Data records: 4945 - Fixing index 1 - Fixing index 2 - Fixing index 3 - Fixing index 4 - Fixing index 5 - Fixing index 6 Data records: 4943 |
Et on vérifie :
sudo myisamchk /var/lib/mysql/ma_base/ma_table.MYI Checking MyISAM file: /var/lib/mysql/ma_base/ma_table.MYI Data records: 4943 Deleted blocks: 0 - check file-size - check record delete-chain - check key delete-chain - check index reference - check data record references index: 1 - check data record references index: 2 - check data record references index: 3 - check data record references index: 4 - check data record references index: 5 - check data record references index: 6 - check record links |
Enfin, on relance Apache et MySQL :
$ sudo /etc/init.d/mysql start $ sudo /etc/init.d/apache2 start |
Et si tout va bien, tout refonctionne comme si de rien n’était!
Xtreamer : Disque dur multimedia sous Linux
J’ai acheté il y a quelques mois un disque dur multimédia de marque Xtreamer. Mon choix s’était porté sur ce modèle entre autres pour les raisons suivantes :
- le prix : environ 120€ frais de port inclus;
- les spécifications : Disque dur réseau, emplacement pour un disque dur interne 2,5′, ports USB, WiFi (avec l’antenne vendue séparément pour 20€), HD, etc…;
- et surtout : le firmware du boîtier est un linux avec serveur web intégré s’il-vous-plaît!
Ce dernier point est déterminant par rapport à d’autres modèles au firmware propriétaire. En effet, depuis la sortie du produit, les mises à jour sont régulières avec à chaque release des corrections de bugs mais aussi l’ajout de nouvelles fonctionnalités (récemment, par exemple, une prise en charge complète des MKV, une meilleure gestion des sous-titres, etc…). De plus, le choix d’un firmware ouvert a permis de développer une importante communauté autour de ce produit. Ainsi, en plus des nouveautés proposées par le constructeur, de nombreux contributeurs ont participé à créer de nouveaux modules. On a donc vu apparaître ces derniers mois un gestionnaire de photos, une bibliothèque de skins pour l’interface utilisateur, l’intégration de transmission dans le firmware, une interface de lecture de flux vidéos, des jeux, et j’en passe et des meilleurs.
Bref, ce billet ressemble à une publicité pour Xtreamer mais c’est vraiment mérité! C’est un exemple concret du succès d’un firmware open-source. Lors de sa sortie, des disques durs multimédia type « Popcorn Hour » surpassaient nettement ce modèle. Aujourd’hui, grâce à une communauté grandissante et efficace, et surtout grâce à un effort important de l’équipe de développement de Xtreamer pour interagir avec cette communauté et lui donner tous les moyens nécessaires à son développement, je ne suis pas certain que ce soit encore vrai.
Depuis, la société a diversifié ses activités autour de ce concept de firmware à base de linux en proposant une version Pro du disque dur multimédia et un NAS à deux baies SATA 3,5′.




