[Linux-bruxelles] Sauvegarde et restauration MySQL DB via PHP

Thibault Richard thibault.richard at skynet.be
Jeu 1 Sep 12:26:13 CEST 2005


Pourquoi n'utilises tu pas simplement les fonctions "system" ou "exec" de
php pour utiliser mysqldump dans php ?

http://php.belnet.be/manual/fr/function.system.php et
http://php.belnet.be/manual/fr/function.exec.php
(généralité sur l'éxécution externe
http://php.belnet.be/manual/fr/ref.exec.php)

Il faut juste que tu spécifie bien ton user/password MySQL dans ta commande
mysqldump (sinon la commande est éxécutée sous l'utilisateur du serveur web
sans mot de passe ... autrement dit "access denied")

De mémoire et sans garantie de syntaxe tu devrais faire un truc du genre :

exec("mysqldump -u user -p password -D database > fichierdump");
 (arrange toi pour que fichierdump ait un timestamp dans son nom, c'est plus
facile pour remttre un backup d'une date précise)

Pour la restauration, prévois une page web qui affiche un textbox avec la
liste des fichier dump (que tu auras pris soin de mettre dans un directory
dédié pour pouvoir utiliser
http://php.belnet.be/manual/fr/function.scandir.php) et, en fonction de la
sélection, exécute une commande du genre :

exec("mysqldump -u user -p password -D database < fichierdumpchoisi");

Si tu manques d'inspiration, tu peux regarder le code source de phpMyAdmin
... il y a une fonctionnalité qui fait ça.

 D'ailleurs si la fonctionnalité de backup/restore doit être effectuée par
un nombre restreint de personnes (toi uniquement) tu peux simplement
installé phpMyAdmin ... la seule différence avec mon explication c'est que
le fichier dump est stocké sur la machine du client qui a exécuté le backup.


----- Original Message ----- 
From: "Philippe Beaujean" <philippe.beaujean at bxlug.be>
To: "Mailing-list du BxLUG" <linux-bruxelles at lists.bxlug.be>
Sent: Thursday, September 01, 2005 11:50 AM
Subject: [Linux-bruxelles] Sauvegarde et restauration MySQL DB via PHP


Bonjour,

je termine un gros projet que j'avais en chantier. Il ne me manque
maintenant que la possibilité de sauvegarder et restaurer une ou
plusieurs databases MySQL. Il est impératif que cela puisse se faire via
un script PHP.

En cherchant, je ne trouve toujours que des solutions en ligne de
commande, via mysql-dump, mais je ne trouve rien que je puisse utiliser
pour créer un script PHP (c'est-à-dire une méthode simillaire à celle
qu'on utiliserait en ligne de commande à l'intérieur de MySQL).

Donc :
$mysql_link=@mysql_connect("localhost",$dbusername,$dbpassword) ;
@mysql_select_db($db,$mysql_link) ;

$query=????????

@mysql_query($query,$mysql_link) ;
@mysql_close($mysql_link) ;

Merci.

Amicalement,
Philippe.






-- 
Linux-bruxelles mailing list
Linux-bruxelles at lists.bxlug.be
http://lists.bxlug.be/mailman/listinfo/linux-bruxelles





Plus d'informations sur la liste de diffusion Linux-bruxelles