Aller au contenu

Faire un backup d'une DB SQL


Sujets conseillés

Posté

Bonjour et oui la question du jour avec Gecko64 :P

Voila en fait je voulais savoir comment je pourrais faire en PHP pour effectuer le backup d'une base de donnée? (Utilisation de phpmyadmin ou autre outil dans le genre m'est interdite je précise <_<)

Si il existe une fonction en PHP qui gère tout ca? :unsure:

J'ai regardé sur le net mais on me propose des solutions assez bidouille ici: http://www.php-mysql-tutorial.com/perform-...-backup-php.php

Je dis bidouille pcq je n'aime pas la fonction systeme(); qui peut révéler des incompatibilités pour certaines commandes si on passe d'un serveur Linux a Windows.

Personnellement, je voulais savoir si il était possible de lancer un téléchargement de la base de données sans la stocker sur le disque dur du serveur?

Un peu comme certains forums font pour faire le backup :)

Edit: je vais quand même apporter une petite précision, il est possible de faire ca sans la fonction systeme() ou exec()?

Je n'aime pas trop exécuter des commandes en locale ainsi en fait :-/

Enfin je vous demande pour avoir une idée de solution propre légère comme je sais qu'il y a pas mal de pro PHP ici et avec le moins de risque en matière de faille de sécu.

Merci d'avance :)

Gecko64 (Marc)

Posté

Merci Trocweb mais comme je dois mettre ca dans mon travail de fin d'étude, je ne peux pas utiliser un outil tout pré fait.

J'ai trouvé des moyen de faire ca mais ils utilisent des fonctions système que j'essaie au minimum d'utiliser.

Donc en fait je pose ma question ici surtout pour savoir si quelqu'un n'a pas une idée ou moyen de procédé pratique et sécurisé pour effectuer cela.

En fait ca doit permettre a la personne pour qui je fais le site de pouvoir faire la sauvegarde de sa DB en un clic ;)

Posté (modifié)

a j'avais pas percuté :sick:

sur les forums phpbb il y a un module qui permet de faire ça en 1 clic je crois, tu pourrait peut être t'en inspirer

Modifié par TrocWeb
Posté

Tu as un bon tuto ici , sans appel de system() , qui te génère un fichier .txt en sortie, reste à le compresser, faire télécharger le fichier et le supprimer à la fin du téléchargement.

Posté (modifié)

Délicate tâche que voila :D

Si tu cherches un truc fiable et souple, l'idéal sera très certainement un script basé sur mysqldump... et donc de passer par system(), exec() et autres.

Si tu cherches un truc rapide, je n'ai pas trouvé mieux que mylvmbackup. Mais cela nécessite encore system()/exec() etc, mais aussi les droits root et un formatage LVM... bref coté portabilité c'est pas l'idéal.

Après pour du 100% PHP pour moi ce sera forcément de la bidouille, et mis a part comme projet d'étude l'intérêt me semble très très limité (d'autant plus qu'il y a déjà des solutions pour ça).

Dans tous les cas je ne passerais pas par Apache pour faire ça : le dump d'une database peut être très long, et ce n'est (à mon avis) pas via Apache que tu peux gérer ce genre de chose de manière fiable.

L'idéal serait alors que le script coté front déclenche un processus de dump en tache de fond, après tu joues éventuellement avec l'ajax pour afficher la progression, puis tu ne lances le téléchargement qu'une fois le dump terminé.

Bon courage ;)

Modifié par Kioob

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...