Backupez MySQL depuis un script Php.
« PhpBackup4MySQL » est une classe php permettant de faire facilement des sauvegardes de BDD MySQL depuis php.
J’ai écrit ce code car j’ai besoin de ce genre de fonctionnalités pour une implémentation facile dans une application tierce que j’utilise. Mais je n’ai pas trouvé parmi les applications disponibles ce que je recherchais (soit un code beaucoup trop lourd, soit un code qui ne fonctionnait pas ou une license incompatible avec la license de l’application tierce).
Pour l’instant le code fonctionne pour mon utilisation, même s’il reste des améliorations à apporter. Mais je pense qu’il pourra être utile à d’autres et/ou bénéficier d’améliorations que d’autres pourraient y apporter, j’ai donc décidé de partager le code sous la license BSD suffisamment permissive
.
J’espère que cela vous sera utile…
AVERTISSEMENT: CETTE CLASSE EST TOUJOURS EN COURS DE DÉVELOPPEMENT (BIEN QUE JE L’UTILISE AVEC SUCCÈS). VOUS NE DEVRIEZ DONC PAS L’UTILISER EN PRODUCTION SANS AVOIR PRÉALABLEMENT PRIS LES MESURES DE TESTS NÉCESSAIRES QUI DEMEURENT SOUS VOTRE ENTIÈRE RESPONSABILITÉ. A CE SUJET, JE RAPPELLE ICI QUE CE LOGICIEL EST PROPOSÉ « TEL QUEL » ET QUE JE DÉCLINE TOUTE RESPONSABILITÉ CONCERNANT DES DOMMAGES QUI POURRAIENT RÉSULTER DE SON UTILISATION (MERCI DE CONSULTER LA LICENCE -BSD- POUR L’ENSEMBLE DES CONDITIONS D’UTILISATION).
Configuration requise: Php Ver. 5.3, PDO.
La version actuelle a été testée avec succès avec Php 5.3.5 et MySQL ver. 5.5.8.
Merci de me faire part des bugs.
Cependant, ceci constitue pour moi une activité annexe: je dispose de peu de temps à accorder à ce projet, je ne suis par ailleurs pas un programmeur professionnel.
Cette classe comporte quelques fonctions utiles pour sauvegarder une base MySQL mais l’essentiel peut se réduire à l’exemple proposé dans le fichier « TestBackup.php », c’est à dire:
1/ Créer une sauvegarde comme suit:
<?php //Créer une instance de la classe phpBackup4mysql $pb4m = new phpBackup4MySQL(); //Créer la sauvegarde $sql_dump = $pb4m->backupSQL(); ?>
2/ Enregistrer la sauvegarde dans un fichier
<?php //Enregistrer la sauvegarde dans un fichier $pb4m->saveFile($sql_dump) ?>
Différents paramètres peuvent être modifiés depuis le fichier de config, à savoir:
- Paramètres de connexion à la base de données.
- Chemin de sauvegarde des fichiers de backup.
- « Max Query Size » pour ajuster la limite de taille de la requête SQL qui peut interférer au moment de réimporter la base depuis la sauvegarde (selon le paramétrage de MySQL).
- Option « Ignore Foreign Keys » pour une prise en compte des contraintes entre tables lorsque cela s’avère nécessaire
- Option « No Auto Value on Zero »
- Option permettant de forcer l’effacement d’une table avant de la réimporter. Cette option est utile lorsque l’on souhaite réimporter des données en remplacement de celles existantes. JE VOUS INVITE CEPENDANT À NE PAS REMPLACER UNE BASE EXISTANTE AVEC LA SAUVEGARDE CRÉÉE AVANT D’AVOIR CONSCIENCIEUSEMENT MENÉ L’ENSEMBLE DES TESTS NÉCESSAIRES (SUR DES BASES DE TEST) POUR VALIDER LE FONCTIONNEMENT. JE DECLINE TOUTE RESPONSABILITE EN CAS DE PERTE DE DONNEES
Pour le moment, il n’existe pas de fonction de réimport/restore dans la classe (bien que cela soit prévu pour un futur proche), le réimport de la base doit donc être effectué grâce à phpMyAdmin par exemple.
Bonne utilisation!
