Skip to content

Mois : avril 2014

MySQL : convertir une table MyISAM vers InnoDB

Il y a quelques temps et pour des questions de performances, j’ai eu à convertir une base de données d’une cinquantaine de tables du moteur MyISAM vers InnoDB.

Voici une méthode simple et rapide pour effectuer cette conversion en console et d’une seule commande :

Tout d’abords, simulation afin de voir quels seront les requêtes SQL envoyées au serveurs :

$ DB="LeNomDeVotreBaseDeDonnées"
$ ENGINE="InnoDB" # Mettre InnoBD pour convertir vers InnoDB. Inversement, mettre MyISAM pour convertir vers MyISAM.
$ echo 'SHOW TABLES;' \
| mysql --defaults-file=/etc/mysql/debian.cnf ${DB} \
| awk '!/^Tables_in_/ {print "ALTER TABLE `"$0"` ENGINE = ${ENGINE};"}' \
| column -t

Si tout semble correct, on exécute les requêtes :

ATTENTION :
Je ne prends aucune responsabilité en cas de dommage à votre base de données.
Veuillez TOUJOURS effectuer des sauvegardes dans le cas ou un problème se produirait lors de l’exécution de cette commande.
Il vous appartient de vérifier que votre base de données est compatible avant d’effectuer cette conversion !

L’exécution de cette commande peut être très longues suivant la taille et le nombre de vos tables !

$ DB="LeNomDeVotreBaseDeDonnées"
$ ENGINE="InnoDB" # Mettre InnoBD pour convertir vers InnoDB. Inversement, mettre MyISAM pour convertir vers MyISAM.
$ echo 'SHOW TABLES;' \
| mysql --defaults-file=/etc/mysql/debian.cnf ${DB} \
| awk '!/^Tables_in_/ {print "ALTER TABLE `"$0"` ENGINE = ${ENGINE};"}' \
| column -t \
| mysql --defaults-file=/etc/mysql/debian.cnf ${DB}

Leave a Comment

rm: impossible de supprimer — Débordement du quota d’espace disque

Dans un cas comme celui-ci :

rm: impossible de supprimer « votre_fichier.rar » : Débordement du quota d'espace disque

Que faire lorsque même un rm –force ne suffit plus ?

Essayez donc ceci :

echo " " > votre_fichier.rar
rm votre_fichier.rar

Ceci aura pour effet de remplacer le contenu du fichier par un espace ( le ” ” ) et vous permettras de récupérer un peu d’espace pour pouvoir effectuer le ménage et supprimer ce fichier et les autres présents sur ce volume.

Merci à @LHercot sur Twitter pour l’astuce !

Leave a Comment