Download Gestionnaire de sauvegarde complet pour MySQL

      Information

 Information

Pour ceux qui ont une application PHP / MySql, il permet de sauvegarder d'un clic sa base ou de la restaurer avec une sauvegarde antérieure. La gestion des noms est automatique même s'il y a plusieurs bases à gérer. Une seule ligne de code php/html est à rajouter au menu de chaque application avec retour dans
l'application à la fin. Les tables avec contraintes de clés externes sont gérées. Ce gestionnaire est composé de petits modules, qu'il suffit de placer dans le répertoire courant. Ils peuvent être utilisés indépendamment.
****************
La présentation des fichiers de sauvegarde est calquée sur celle des
exportations de PhpMyAdmin. Avec une différence : l'importation de PhpMyAdmin impose d'effacer...
nuellement toutes les tables concernées, ce qui est contraire au principe d'automatisme. Le palliatif est de procéder à la sauvegarde de la base actuelle avant toute restauration puis à la suppression des tables.
L'importation d'une sauvegarde peut se faire alors en toute sérénité.
****************
Pour faciliter le choix du fichier à restaurer, un petit éditeur a été ajouté. Tout fichier .sql est accepté. La liste de ces fichiers avec leur date de création est également affichée. Ils doivent être dans le répertoire courant.
****************
Pour gérer plusieurs bases, il a été choisi d'associer quelques lignes de code à chaque base (des aiguilleurs). Chaque aiguilleur assure la connexion à sa base (sous forme d'une instance PDO). Il lance alors le gestionnaire de sauvegarde dont le formulaire aura pour destinataire l'aiguilleur, pour un retour à l'expéditeur. (redirection). Les aiguilleurs se distinguent simplement par le
nom de la base associée : aiguilleur_unebase.php
****************
Petit bonus : si la base venait à être corrompue, provoquant une erreur fatale, en lançant simplement l'aiguilleur on peut restaurer la dernière sauvegarde et se retrouver directement dans l'application réparée ! Le contenu de la base, tel qu'il était avant réparation, peut alors être étudié dans l'éditeur.
****************
Mais avant tout test, procéder à une (dernière ?) exportation / VÉRIFICATION de l'exportation. Ne jamais oublier la puissance de la loi de Murphi ! Dont ma traduction serait : la chose la plus improbable doit être considérée comme avérée dès lors qu'elle est néfaste...
****************
EN PRATIQUE,
Si une des bases est 'base1' et que son menu est géré par une liste déroulante, il faut rajouter une option au menu avec la ligne :
...................................................................

...................................................................
Créer le 'fichier aiguilleur_base1.php' (en changeant 'base1' et 'mon_pass') avec pour contenu le code : (le fichier est dans le .zip)
-------------------------------------------------------------------
if(isset($_POST['sauve'])&& $_POST['restaure']==''&& $_POST['sauve']=='non') {
header("Location: mon_accueil.php"); exit; } // <== modifier ici
$base = 'base1'; // <== modifier ici (nom d'une de mes bases)
$bdd = new PDO('mysql:host=localhost';dbname='.$base, 'root', 'pass');
include("gestionnaire.php"); // La cible du formulaire est cet aiguilleur.
?>
-------------------------------------------------------------------
Si le menu est géré par des boutons "radio", il faut ajouter la ligne :
...................................................................

...................................................................
en remplaçant les "xx" par : "aiguilleur_base1.php", et les "yy" par : Gestion des sauvegardes En supposant que la première ligne php de "lecture" du menu soit :
-------------------------------------------------------------------
if(isset($_POST['menu'])) {
header("Location: ".$_POST['menu']); exit; }
-------------------------------------------------------------------
****************
Et rajouter dans le répertoire de travail les fichiers :
aiguilleur_base1.php (à modifier)
sauvegarde.php
restauration.php
gestionnaire.php
pied_de_page.php
feuille.css pour quelques couleurs.
****************
Côté sécurité, un formulaire utilisé est aussitôt invalidé : si on revient en arrière dans la navigation, même si on relance le formulaire, l'action sera sans effet. On ne verra plus : "les informations précédemment transmises par Firefox doivent être renvoyées." ! (au risques et périls de l'utilisateur !).
****************
W7 / WAMPSERVER2.1 / phpMyAdmin / Apache / MySQL5.5.8
****************


  • Merci de signaler tout problème rencontré avec ce script

L'ajout de commentaire est libre et ne demande pas d'inscription


Présentation de PHP

PHP débutant et initié 50 Tutoriel

Présentation de MySQL