L'utilitaire myisamchk est adapté à la maintenance des tables et leur recouvrement. Toutefois, même si la réparation d'une table avec myisamchk est sécuritaire, il est toujours préférable de faire une sauvegarde avant la réparation, ou toute autre opération de maintenance qui pourrait faire de nombreuses modifications dans la table.

  • Contexte

Ici nous installerons une base à partir de fichiers .MYD .MYI sauvegardés (présents dans /MA_SAUVEGARDE). Ces fichiers se trouvent initialement dans le répertoire des data de mysql (datas regroupées par répertoire où chaque répertoire correspond à une base), il suffit donc d'avoir ces répertoires pour les réinstaller, réparer etc.)

  • Config utilisée

Répertoire local dans lequel on souhaite restaurer : /var/lib/mysql/
Les sauvegardes des anciennes database à partir du répertoire mysql contiennent toutes des fichiers .frm .MYD MYI

  • Dans /var/lib/mysql/

On recrée le répertoire de la base à installer et affecte les droits mysql + lecture/écriture

mkdir MA_BASE
chgrp mysql MA_BASE/ -R
chown mysql MA_BASE/ -R
chmod 777 MA_BASE/ -R

On copie les données

cp /MA_SAUVEGARDE/var/lib/mysql/MA_BASE/* /var/lib/mysql/MA_BASE/

Arrêt du serveur mysql => IMPERATIF

service mysqld stop

(ici fedora, commande d'arrêt du serveur mysql)

  • Commande mysql

On va dans le répertoire de la base à réinstaller / restaurer dans laquelle les fichiers ont été copiés

cd MA_BASE
myisamchk -r MA_BASE *

Redémarrer le serveur mysql lorsque toutes les restaurations ont été faites : les logs console affichés lors de la commande vous permettront de voir les process

service mysqld start

Les tables sont utilisables.

Voir sur le site http://dev.mysql.com/doc/refman/5.0/fr/table-maintenance.html pour toutes les explications concernant l'utilisation de myisamchk