Votre site WEB ne fonctionne plus ? Vous obtenez un code erreur 500 ?

Il se peut que le problème provienne de la base de données MySQL

Essayons de relancer MySQL:

root@server:/# /etc/init.d/mysql restart
Stopping MySQL database server: mysqld.
Starting MySQL database server: mysqld.
Checking for corrupt, not cleanly closed and upgrade needing tables..
root@server:/# ERROR 144 (HY000) at line 1: Table './athelia/wp_options' is marked as crashed and last (automatic?) repair failed

root@server:/#

Vous avez donc un message d’erreur du type

Table ‘./ma_base/ma_table’ is marked as crashed and last (automatic?) repair failed

Ceci peut être simplement dû au fait que des opérations d’insertion sur cette table étaient en cours d’exécution au moment où une 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 arrêter les services 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 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 échouerait, 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 re-fonctionne comme si de rien n’était!

Leave a Reply

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Blue Captcha Image
Refresh

*

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.