Retourner en haut de la page Aller au bas de la page
Logo de mon site
Logo de mon site

Yasser Arafat

Item 1 Description

Yasser Arafat

Hugo Chávez

Item 1 Description

Hugo Chávez

Mikhaïl Gorbatchev

Item 1 Description

Mikhail Sergueievitch Gorbatchev

L'Abbé Pierre

Item 1 Description

Abbe Pierre

Salvadore Allende

Item 1 Description

Salvadore Allende

Angela Yvonne Davis

Item 1 Description

Angela Yvonne Davis

Jean Moulin

Item 1 Description

Jean Moulin

Nelson Mandela

Item 1 Description

Nelson Mandela

Martin Luther King

Item 1 Description

Martin Luther King

Gamal Abdel Nasser

Item 1 Description

Gamal Abdel Nasser

Richard Stallman

Item 1 Description

Richard Stallman

Simone Veil

Item 1 Description

Simone Veil

Hand Shake

Item 1 Description

Hand Shake

Wangari Muta Maathai

Item 1 Description

Wangari Muta Maathai

Michel Colucci

Item 1 Description

Coluche

Mère Teresa

Item 1 Description

Mère Térésa

Charles de Gaulle

Item 1 Description

Charles de Gaulle

Che Guevara

Item 1 Description

Ernesto Rafael Guevara

Mohandas Gandhi

Item 1 Description

Mohandas Karamchand Gandhi

Lech Walesa

Item 1 Description

Lech Walesa

Linus Benedict Torvalds

Item 1 Description

Linus Benedict Torvalds

Sous-commandant Marcos

Item 1 Description

Sous commandant Insurge Marcos

Ahmed Shah Massoud

Item 1 Description

Ahmed Shah Massoud

Luxpopuli / eZ Publish / Trucs & astuces / MySQL : sauvegarder et restaurer une base de données





Right menu

OBLIGATOIRE

Un professeur témoigne

La brigade canine dans un collège du Gers.
Réaction d'une internaute Québécoise:
«quand on est rendu à accepter que (...) les autorité mettent leurs sales pattes dans les culottes de vos enfants (...) il est temps (...) de vous réveiller.»
OBLIGATOIRE

Les mensonges de R. Dati

La note de recadrage statistique du sociologue L. Mucchielli recadre également les mensonges de la propagande sécuritaire dont on nous rabat les oreilles depuis déjà trop longtemps et dont les mineurs de France sont à présents la cible.
Le rapport de L. Mucchielli
OBLIGATOIRE

L'aveu de Jean-Marc Sylvestre

«Le système financier s'effondre aujourd'hui comme un jeu de carte... parce que... il a été géré d'une part.... par les États-Unis sans règle... et il a été d'autre part géré... par une bande de voyous... qui se sont gouinfrés... au détriment des autres.»
VOIR LES VIDÉOS

OBLIGATOIRE

prev prev prev prev


MySQL : sauvegarder et restaurer une base de données

Date de publication: le mercredi 8 août 2007 à 21h00
DerniĂšre modification: par Pascal BOYER le mercredi 6 mai 2009 Ă  19h35
« Article précédent: eZ Publish : login et mot de passe perdus
» Article suivant: rewriting - virtualhost

MySQL : script de sauvegarde de la base de données de eZ Publish

Le petit script interactif ci-dessous permet de faire une sauvegarde de la base de données MySQL utilisée par votre site eZ publish :

#!/bin/bash

echo "";
echo "";
echo "";
echo "";
echo "";
echo "               ################################################################################";
echo "               #  La sauvegarde de la base de donnĂ©es du site luxpopuli.fr va ĂȘtre effectuĂ©e  #";
echo "               ################################################################################";
echo "";
echo "";
echo "";

# L'option -n supprime le retour chariot
echo -n "               > 1°/ Veuillez entrez le nom de la Base de données à sauvegarder: ";
# et maintenant on affecte ce qui est répondu par l'utilisateur à la
# variable dbase (pas de $ devant la variable car elle est en train d'ĂȘtre créée)
read dbase;

echo "";
echo -n "               > 2°/ Veuillez entrez le nom de l'administrateur de cette base de données: ";
read admin;

echo "";
echo -n "               > 3°/ Veuillez entrez le mot de passe de l'administrateur de cette base de données: ";
# L'option -s permet de ne pas afficher les caractĂšres du mot de passe lorsqu'on le tape.
read -s adminpswd;
# L'option -s supprime l'écho, donc le mot de passe ne s'affiche pas à l'écran.
echo "";

# Maintenant on définit le nom du fichier de sauvegarde:
jour=`date +%A`;
#mois=`date +%B`;
mois=`date +%m`;
date=`date +%d`;
heure=`date +%X`;
annee=`date +%Y`;

# Il est IMPÉRATIF de coller la variable au signe = !!!
#file=$dbase\_dumpfile_$jour-$date-$mois-$annee-a-$heure.sql;
file=$annee-$mois-$date-a-$heure--$dbase\_dumpfile.sql;

echo "";
echo "               Le nom du fichier de sauvegarde sera: $file";
echo -n "               Il sera placé dans /usr/local/Backup/ezpdbase/";
sleep 5;
echo "";
echo "";
echo -n "               > Veuillez patienter pendant que le systÚme crée la sauvegarde de votre base de données...";
`mysqldump -u $admin -p"$adminpswd" -h localhost --opt $dbase > /usr/local/Backup/ezpdbase/$file`

# On compresse le fichier:
echo "";
echo "               > Le fichier de sauvegarde a bien été créé.";
echo -n "               > Veuillez patienter pendant que le systĂšme compresse le fichier de sauvegarde...";
`bzip2 -9 /usr/local/Backup/ezpdbase/$file`;

# On récupÚre la taille du fichier compressé:
taille=`ls -la /usr/local/Backup/ezpdbase/$file.bz2 |awk '{print $5}'`;

echo "";
echo "               > L'opération s'est correctement déroulée.";
echo "                 Le nom final du fichier est: $file.bz2";
echo "                 Sa taille est de $taille octets";
echo "";
echo "";
exit 0

AprÚs avoir placé ces lignes dans un fichier ( mysqldump_luxpopuli par exemple), rendez-le exécutable:

chmod +x mysqldump_luxpopuli

...puis restreignez ainsi les droits:

chmod 700 mysqldump_luxpopuli

Placez ensuite , par exemple, le script dans le répertoire /usr/local/sbin/ .

Ensuite, il suffit de créer le répertoire /usr/local/ Backup/ et son sous-répertoire /usr/local/Backup/ ezp / dans lequel seront placés les fichiers de sauvegarde.

Lorsque l'on exécute ce script, voici l'ensemble des sorties qu'il produit:

./mysqldump_luxpopuli

.
               ################################################################################
               #  La sauvegarde de la base de donnĂ©es du site luxpopuli.fr va ĂȘtre effectuĂ©e  #
               ################################################################################























               > 1°/ Veuillez entrez le nom de la Base de données à sauvegarder: madbase

               > 2°/ Veuillez entrez le nom de l'administrateur de cette base de données: monidentifiant

               > 3°/ Veuillez entrez le mot de passe de l'administrateur de cette base de données:

               Le nom du fichier de sauvegarde sera: 2007-08-08-a-19:15:43--madbase_dumpfile.sql
               Il sera placé dans /usr/local/Backup/ezpdbase/


               > Veuillez patienter pendant que le systÚme crée la sauvegarde de votre base de données...
               > Le fichier de sauvegarde a bien été créé.
               > Veuillez patienter pendant que le systĂšme compresse le fichier de sauvegarde...


               > L'opération s'est correctement déroulée.
                 Le nom final du fichier est: 2007-08-08-a-19:15:43--madbase_dumpfile.sql.bz2
                 Sa taille est de 7146167 octets














.

MySQL : automatiser les sauvegardes de la base de données

Si vous souhaitez automatiser la procédure de sauvegarde de votre base de données MySQL, il suffit d'utiliser crontab (ou l'interface graphique kcron).

Par contre, il ne sera plus possible d'utiliser un script interactif et les noms de la base de donnĂ©es, de l'administrateur et son mot de passe devront donc ĂȘtre inscrits en dur dans le script qui devient alors:

#!/bin/bash

# Lorsqu'on définit une variable il est IMPERATIF de coller la variable au signe égal ("=")

# On définit le nom de la base de données
dbase=madbase;

# On définit le nom de l'administrateur de la base de données
admin=monidentifiant;

# On définit le mot de passe de l'administrateur
adminpswd=monmotdepasse;

# On définit le jour en cours
##jour=`date | awk '{print $1}'`;
jour=`date +%A`;

# On définit le mois en cours
##mois=`date | awk '{print $3}'`;
mois=`date +%m`;

# On définit le jour en cours
##date=`date | awk '{print $2}'`;
date=`date +%d`;

# On définit l'heure courante
##heure=`date | awk '{print $5}'`;
heure=`date +%X`;

# On définit l'année en cours
##annee=`date | awk '{print $4}'`;
annee=`date +%Y`;


# On définit le nom que portera le fichier de sauvegarde
#file=`touch $dbase_dumpfile_$jour-$date-$mois-$annee-a-$heure.sql`;
file=$annee-$mois-$date-a-$heure--$dbase\_dumpfile.sql;


# On effectue le dump de la base de donnée
`mysqldump -u $admin -p"$adminpswd" -h localhost --opt $dbase > /usr/local/Backup/ezp/$file`;

# On compresse le fichier:
`bzip2 -9 /usr/local/Backup/ezp/$file`;

# On supprime le fichier non compressé
# C'EST INUTILE CAR bzip2 SUPPRIME LE FICHIER ORIGINAL
#`rm /usr/local/Backup/eZP/$file`;

exit 0

Cron : configuration d'une sauvegarde automatique

Voici à présent un exemple de table cron qui fait une sauvegarde toutes les 6 heures de la base de données de eZ publish :

crontab -u root -e

# Sauvegarde de la base de données de eZ publish
0 0,6,12,18 * * * /usr/local/sbin/mysqldump_luxpopuli

MySQL : restauration du dump de la base

mysql -u login -p password -h nom_serveur -D nom_base < nom_du_fichier_de_sauvegarde.sql

oĂč:

  • login doit ĂȘtre remplacĂ© par le nom de l'administrateur de la base de donnĂ©es,
  • password doit ĂȘtre remplacĂ© par le mot de passe de l'administrateur de la base de donnĂ©es,
  • nom_serveur doit ĂȘtre remplacĂ© par le nom (ou l'adresse IP) du serveur MySQL (ou par localhost si la commande est lancĂ©e directement Ă  partir de la machine qui abrite le serveur MySQL),
  • nom_base doit ĂȘtre remplacĂ© par le nom de la base de donnĂ©es que l'on souhaite restaurer.

Personnellement, avant de restaurer l'intégralité des tables de ma base de données utilisée par eZ Publish , je prends toujours la peine de vider complÚtement cette derniÚre. Mais pour cela j'utilise phpMyAdmin car la liste des tables est bien trop longue pour envisager la ligne de commande.

Lien vers l'article précédent
eZ Publish : login et mot de passe perdus
rewriting - virtualhost
Lien vers l'article suivant

Commentaires