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

