Aller au menu - Aller au contenu

[Plan du site] Vous êtes ici --- > Le Site du Zéro > Les tutoriels > Non-Officiels > Site Web > PHP > Base de données > Faire une sauvegarde de sa base de données MySQL > Lecture du tutoriel

Faire une sauvegarde de sa base de données MySQL

Vous vous apprêtez à lire un tutoriel rédigé par un membre de ce site. Malgré tout le soin que ce membre a pu apporter au tutoriel, nous ne pouvons pas garantir que les informations contenues sur cette page sont exactes à 100%. Merci de garder cela en tête lorsque vous lirez cette page ;o)
Avatar
Auteur : 4nCi3n
Note : 14 / 20 (26 votes)
Visualisations : 25 980


Plus d'informations Plus d'informations
Voilà, on va apprendre à faire une sauvegarde (ou un dump) de votre base de données MySQL sous Linux.

À quoi ça sert de faire un backup, une sauvegarde ou un dump ( :p ) de ma base de données ?


Tout simplement à ce que si votre serveur a un problème, vous risquez de perdre toutes vos données, donc on ne le dit jamais assez : faites des dumps de vos bases de données !

Toutes les commandes qui suivent devront être exécutées dans le terminal sous Linux. ;)


Alors voilà ;) ...
Sommaire du tutoriel :
Icône du chapitre

Dumper sa base de données MySQL

Dumper MySQL



Cette opération consiste à sauvegarder votre base de données.

Exécutez cette ligne :

Code : SQL
1
mysqldump base_de_donnees -u utilisateur -p mot_de_passe > dump.sql gzip dump.sql


Ici, base_de_donnees, utilisateur et mot_de_passe sont à modifier avec vos informations. Vous pouvez modifier le nom dump.sql pour mabase.sql (par exemple).

Vous obtiendrez alors votre dump.sql.gzip.

Ne modifiez pas le .sql car sinon, votre code ne fonctionnera pas. Si vous modifiez le nom, changez-le les deux fois où il est appelé (pour le nom d'enregistrement et le gzip).


Le gzip permet de "zipper" (réduire la taille) de votre .sql, il est nécessaire pour ensuite vous servir à nouveau de cette sauvegarde (bah oui, sinon ça sert à rien :p). Le gzip est une technologie de zippage presque similaire au zip ou au rar (il y a aussi ace et tout ça :p). Vous n'êtes pas obligés de le mettre si votre base est petite mais il est conseillé, surtout plus bas quand on va voir comment dumper toutes ses bases :p .


Pour sauvegarder toutes les bases de données, exécutez cette ligne :

Code : SQL
1
mysqldump -u utilisateur -p mot_de_passe --all-databases > dump.sql gzip dump.sql


Il est aussi possible de sauvegarder plus d'une base de données (mais pas toutes) en une seule commande, au lieu de le faire plusieurs fois :

Code : SQL
1
mysqldump --databases base_de_donnees1 base_de_donnees2 ... > dump.sql


Ne copiez pas les " ... " dans la commande au-dessus, c'est juste pour dire qu'on peut en mettre plus. :p


Comme d'habitude, modifiez les informations dans la ligne de commande :) !

Récupérer sa base MySQL à partir d'un dump

Récupérer sa base MySQL avec un dump



Exécutez cette ligne :

Code : SQL
1
gunzip dump.sql.gz mysql < base_de_donnees


Ici, modifiez le nom de base_de_donnees par celle où vous voulez que le contenu de votre dump ( sauvegarde :p ) soit extrait, et modifiez le dump.sql.zip par le nom de votre fichier.

Comme au-dessus, ne modifiez que le nom du dump, pas le .sql.gzip car sinon, votre code ne marchera pas :) !


Il est possible que vous deviez donner votre mot de passe pour recréer la base de données (ça dépend sous quel hébergeur vous êtes, mais c'est assez rare) :

Code : SQL
1
gunzip dump.sql.gz mysql -p mot_de_passe < base_de_donnees


Ici, modifiez le nom du fichier (voir les deux "Attention !", plus haut), le base_de_donnees et le mot_de_passe, comme expliqué au-dessus.

Si votre dump n'a pas été gzippé, exécutez cette ligne :

Code : SQL
1
mysql -u utilisateur -p mot_de_passe base_de_donnees < dump.sql


OK, donc on va finir avec un petit QCM :) :pirate: .

Et en PHP ?

Eh oui, c'est possible, il y a un code en PHP qui permet de faire un dump de votre base MySQL ! Voici le code PHP (merci à AdRi1 ;) ) :

Code : PHP
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
<?php
$host = "localhost"; 
$user = "****";
$pass = "****"; // On définit les infos de la base de données
$db = "****";
$date = date("d-m-Y"); // On définit le variable $date (ici, son format)

$backup = $db."bdd-backup_".$date.".sql.gz";
// Utilise les fonctions système : MySQLdump & GZIP pour générer un backup gzipé
$command = "mysqldump -h$host -u$user -p$pass $db | gzip> $backup";
system($command);
// Démarre la procédure de téléchargement
$taille = filesize($backup);
header("Pragma: public");
header("Expires: 0");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("Cache-Control: public");
header("Content-Description: File Transfer");
header("Content-Type: application/gzip");
header("Content-Disposition: attachment; filename=$backup;");
header("Content-Transfer-Encoding: binary");
header("Content-Length: ".$taille);
@readfile($backup);
// Supprime le fichier temporaire du serveur
unlink($backup);
?>


Voilà ;) !

Ce script gzippe le dump de votre base MySQL !

Informations utiles

Sinon, pour plus d'informations, la documentation officielle sur -mysqldump :

Informations -mysqldump

Have fun ;) !

Q.C.M.

Que signifie un "dump" ?
Que signifie un "gzip" ?
Quand aurai-je à rentrer mon mot de passe pour utiliser mon dump ?
Que signifie un " dump " ?
Que signifie un " gzip " ?
Quand aurais - je à rentrer mon mot de passe pour utiliser mon dump ?

Statistiques de réponses au QCM


Voilà : j'espère que vous avez bien compris, c'est mon premier tutoriel. Si vous avez des problèmes ou repéré des erreurs (oui, c'est possible :p) , dites-le par commentaire ou par mon MSN (profil :) ).

Have fun ;) !
Retour en haut Retour en haut


Créé : le 24/11/2005 à 12:00:15
Modifié : le 13/10/2008 à 14:13:03
Avancement : 100%
Licence : Copie non autorisée

L'orthographe, la grammaire et la présentation de ce tutoriel ont été vérifiées par les zCorrecteurs.
30 commentaires

Changer de design | En savoir plus | Plan du site | Politique d'accessibilité | Règles | RSS tutoriels | RSS news
Édité par Simple IT SARL : Nous contacter | Notre blog | Revue de presse | Publicité

Y'a plus rien à lire, faut remonter maintenant !

Hébergement web - Correction de tutoriels - Créer un site
Vous souhaitez apparaître ici ? Contactez-nous.

Nombre de connectés 603 Zéros connectés | Requêtes SQL 8 requêtes | Temps de génération de la page : Total (SQL) 0.1518s (0.1379s)