Dumper et importer une base de données MySQL

Las sauvegardes de sa base de données sont les meilleurs moyens de s’assurer de ne jamais perdre aucune information. Cependant, pour faire une sauvegarde, il faut savoir dumper sa base puis la réintégrer. Voilà comment faire :

Dumper sa base de données

Il existe différentes manières de dumper des bases de données. On peut exporter toutes les bases de données hébergées à l’aide de la commande :

mysqldump -u <NOM_D'UTILISATEUR> -p --all-databases > <NOM_DU_FICHIER>.sql

On peut aussi automatiser la tâche en incluant le mot de passe de l’utilisateur ainsi :

mysqldump -u <NOM_D'UTILISATEUR> --password=<MOT_DE_PASSE> --all-databases > <NOM_DU_FICHIER>.sql

l’option –all-databases peut être utilisée sous sa forme courte -A

On peut sélectionner une seule base de données que l’ont souhaite dumper en rajoutant simplement son nom :

mysqldump -u <NOM_D'UTILISATEUR> --password=<MOT_DE_PASSE> <NOM_DE _LA_BASE_A_DUMPER> > <NOM_DU_FICHIER>.sql

Il est enfin possible d’en dumper plusieurs à la fois ainsi :

mysqldump -u <NOM_D'UTILISATEUR> --password=<MOT_DE_PASSE> <NOM_DE _LA_PREMIERE_BASE> <NOM_DE _LA_DEUXIEME_BASE> <NOM_DE _LA_TROISIEME_BASE> > <NOM_DU_FICHIER>.sql

Bien d’autres options existent comme le dump uniquement de certaines tables, etc… Elles sont disponibles dans la manpage de mysqldump.

Importer sa base de données

Une fois le dump effectué, il faut pouvoir le réintégrer en cas de besoin. Pour ce faire, le nombre de possibilités se réduit car il suffit de faire :

mysql -u <NOM_D'UTILISATEUR> -p <NOM_DE_LA_BASE> < <NOM_DU_FICHIER>.sql

Si une erreur se produit disant que la base de données n’a pas pu être trouvée, créez la auparavant dans MySQL avant de réessayer.

Savoir quelles sont les dernières connexions à une machine

Sur l’un de mes serveur, j’ai retrouvé un fichier lolo de 121 Go à la racine de l’un de mes utilisateurs. Un petit affichage du fichier m’a permis de voir qu’il n’était composé que de « y », à mesure de un par ligne, et donc de me rendre compte qu’il avait dû être fait à l’aide de la commande :

yes > lolo

yes est une commande qui écrit de manière répétée soit un texte qu’on lui a passé soit par défaut « y », jusqu’à ce qu’il soit tué. Avec cette commande il est donc très facile de faire des fichiers qui grossissent jusqu’à remplir le disque dur.

Afin de savoir qui était responsable de ce méfait, j’ai utilisé la commande qui permet de lister les dernières connexion qui ont eu lieu sur une machine, j’ai nommé last.

Quelques options son vraiment intéressantes et pour les autres je vous laisse aller sur la manpage qui est très détaillée :

-F : Affiche la date et l’heure des connexion/déconnexion ainsi que la durée
-i : Affiche l’adresse IP
-w : Affiche le nom d’utilisateur et le domaine

Grâce à last j’ai pu voir que personne d’autre que moi ne s’était connecté à mon serveur et un petit tour dans .bash_history m’a permis de vérifier que c’est moi qui avait tapé cette commande et que j’avais juste oublié de l’arrêter. Malin …

Organisation des catégories de manpages

Les manpages sont réparties entre différents dossiers (Cela sert surtout lorsque plusieurs manpages portent le même nom pour des fonctions qui n’ont pas la même utilité). Selon la documentation officielle de man (man man) les catégories sont réparties ainsi :

1 Programmes exécutables ou commandes de l’interpréteur de commandes (shell)
2 Appels système (fonctions fournies par le noyau)
3 Appels de bibliothèque (fonctions fournies par les bibliothèques des programmes)
4 Fichiers spéciaux (situés généralement dans /dev)
5 Formats des fichiers et conventions. Par exemple /etc/passwd
6 Jeux
7 Divers (y compris les macropaquets et les conventions), par exemple man(7), groff(7)
8 Commandes de gestion du système (généralement réservées au superutilisateur)
9 Sous-programmes du noyau [hors standard]