Je travaille sur une petite application PHP pour gérer une base
d'adhérents d'une association.
Les données de la base sont importantes, et je veux en garder des
sauvegardes journalières (pour faire une restauration d'une ancienne
version en cas de fausse manip, ou bien en cas de perte de données
chez mon fournisseur - free.fr pour l'instant). J'ai besoin d'un truc
tout simple : une fonction sauvegarde qui me crée un dump de la base
dans un répertoire (un truc genre backup.php que je puisse appeler via
wget pour pouvoir faire ça d'un cron job depuis une autre machine), et
une fonction de restauration (réduite au minimum si le dump est un
script SQL).
Je pourrais apprendre à le faire moi-même en PHP, mais vu mon niveau,
j'aimerais avoir un truc déjà testé et éprouvé par d'autres gens (les
bugs dans les scripts de backup, en général, on les trouve le jour où
on a besoin d'une restauration et c'est déjà trop tard ...).
J'ai essayé différents trucs sur le web, mais pas très convaincu[1].
Bref, est-ce qu'il y a une solution simple et robuste pour faire ce
genre de choses ?
Merci,
--
Matthieu
[1] Pour l'instant, j'ai phpMyBackupPro, mais c'est un peu une usine à
gaz, et j'ai été obligé de le modifier pour pouvoir l'appeler en
non-interactif (via wget). D'ailleurs, avant modification, il effaçait
systématiquement les dumps juste après les avoir créés. Et
visiblement, mes modifications ont tout cassé vu qu'à l'heure où je
parle, les dumps sont tous vides :-(.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
CrazyCat
Matthieu Moy wrote:
Les données de la base sont importantes, et je veux en garder des sauvegardes journalières (pour faire une restauration d'une ancienne version en cas de fausse manip, ou bien en cas de perte de données chez mon fournisseur - free.fr pour l'instant). J'ai besoin d'un truc tout simple : une fonction sauvegarde qui me crée un dump de la base dans un répertoire (un truc genre backup.php que je puisse appeler via wget pour pouvoir faire ça d'un cron job depuis une autre machine), et une fonction de restauration (réduite au minimum si le dump est un script SQL).
Tu peux utiliser la requète: SELECT * INTO OUTFILE './tonfichier.csv' FIELDS TERMINATED BY ';' ENCLOSED BY '' ESCAPED BY '' LINES TERMINATED BY 'rn' FROM table_membre
Ca te permettra d'avoir un .csv. -- Discussions et débats sur l'actualité: http://www.sujets-d-actu.eu
Matthieu Moy wrote:
Les données de la base sont importantes, et je veux en garder des
sauvegardes journalières (pour faire une restauration d'une ancienne
version en cas de fausse manip, ou bien en cas de perte de données
chez mon fournisseur - free.fr pour l'instant). J'ai besoin d'un truc
tout simple : une fonction sauvegarde qui me crée un dump de la base
dans un répertoire (un truc genre backup.php que je puisse appeler via
wget pour pouvoir faire ça d'un cron job depuis une autre machine), et
une fonction de restauration (réduite au minimum si le dump est un
script SQL).
Tu peux utiliser la requète: SELECT * INTO OUTFILE './tonfichier.csv'
FIELDS TERMINATED BY ';' ENCLOSED BY '' ESCAPED BY '\' LINES TERMINATED
BY 'rn' FROM table_membre
Ca te permettra d'avoir un .csv.
--
Discussions et débats sur l'actualité: http://www.sujets-d-actu.eu
Les données de la base sont importantes, et je veux en garder des sauvegardes journalières (pour faire une restauration d'une ancienne version en cas de fausse manip, ou bien en cas de perte de données chez mon fournisseur - free.fr pour l'instant). J'ai besoin d'un truc tout simple : une fonction sauvegarde qui me crée un dump de la base dans un répertoire (un truc genre backup.php que je puisse appeler via wget pour pouvoir faire ça d'un cron job depuis une autre machine), et une fonction de restauration (réduite au minimum si le dump est un script SQL).
Tu peux utiliser la requète: SELECT * INTO OUTFILE './tonfichier.csv' FIELDS TERMINATED BY ';' ENCLOSED BY '' ESCAPED BY '' LINES TERMINATED BY 'rn' FROM table_membre
Ca te permettra d'avoir un .csv. -- Discussions et débats sur l'actualité: http://www.sujets-d-actu.eu
P'tit Marcel
Matthieu Moy wrote:
J'ai besoin d'un truc tout simple : une fonction sauvegarde qui me crée un dump de la base dans un répertoire et une fonction de restauration
Tu peux utiliser la requète: SELECT * INTO OUTFILE './tonfichier.csv' FIELDS TERMINATED BY ';' ENCLOSED BY '' ESCAPED BY '' LINES TERMINATED BY 'rn' FROM table_membre Ca te permettra d'avoir un .csv.
Pour répondre sur le thème du forum, il te faudrait un script de sauvegarde du genre :
$sql = "SHOW TABLES" $res = mysql_query($sql); if ($res === false) { gestion_erreur_mysql(); } $prefixe = "./sav_".date('ymd'); $fichier_sql = "$prefixe.sql"; $fic = fopen($fichier_sql, 'w'); if ($fic === false) { gestion_erreur_fopen(); } $nbtable=0; $fichiers_csv=array(); while (list($table) = mysql_fetch_row($res)) { $sql = "SHOW CREATE TABLE $table"; $res2 = mysql_query($sql); if ($res2 === false) { gestion_erreur_mysql(); } while (list($ligne) = mysql_fetch_row($res2)) { fwrite($fic, $ligne); } $fichier_csv = "$prefixe_$table.csv"; if(file_exists($fichier_csv)) { unlink($fichier_csv); } $sql = "SELECT * INTO OUTFILE '$fichier_csv' ". "FIELDS TERMINATED BY ';' ENCLOSED BY '' ESCAPED BY '' ". "LINES TERMINATED BY 'rn' FROM $table"; $res2 = mysql_query($sql); if ($res2 === false) { gestion_erreur_mysql(); } $nbtable++; $fichiers_csv[]=$fichier_csv; } fclose($fic); echo "Fin de traitement de sauvegardenn", "Fichier de structure:t$fichier_sqln", "Fichiers de données:n", explode("n", $fichiers_csv), "nnombre de tables:t$nbtablen";
attention, non testé et sans garantie du gouvernement.
a+ -- P'tit Marcel stats sur les forums modérés http://www.centrale-lyon.org/ng/
Matthieu Moy wrote:
J'ai besoin d'un truc
tout simple : une fonction sauvegarde qui me crée un dump de la base
dans un répertoire et
une fonction de restauration
Tu peux utiliser la requète: SELECT * INTO OUTFILE './tonfichier.csv'
FIELDS TERMINATED BY ';' ENCLOSED BY '' ESCAPED BY '\' LINES TERMINATED
BY 'rn' FROM table_membre
Ca te permettra d'avoir un .csv.
Pour répondre sur le thème du forum, il te faudrait un script de
sauvegarde du genre :
$sql = "SHOW TABLES"
$res = mysql_query($sql);
if ($res === false) {
gestion_erreur_mysql();
}
$prefixe = "./sav_".date('ymd');
$fichier_sql = "$prefixe.sql";
$fic = fopen($fichier_sql, 'w');
if ($fic === false) {
gestion_erreur_fopen();
}
$nbtable=0;
$fichiers_csv=array();
while (list($table) = mysql_fetch_row($res)) {
$sql = "SHOW CREATE TABLE $table";
$res2 = mysql_query($sql);
if ($res2 === false) {
gestion_erreur_mysql();
}
while (list($ligne) = mysql_fetch_row($res2)) {
fwrite($fic, $ligne);
}
$fichier_csv = "$prefixe_$table.csv";
if(file_exists($fichier_csv)) {
unlink($fichier_csv);
}
$sql = "SELECT * INTO OUTFILE '$fichier_csv' ".
"FIELDS TERMINATED BY ';' ENCLOSED BY '' ESCAPED BY '\' ".
"LINES TERMINATED BY 'rn' FROM $table";
$res2 = mysql_query($sql);
if ($res2 === false) {
gestion_erreur_mysql();
}
$nbtable++;
$fichiers_csv[]=$fichier_csv;
}
fclose($fic);
echo "Fin de traitement de sauvegardenn",
"Fichier de structure:t$fichier_sqln",
"Fichiers de données:n",
explode("n", $fichiers_csv),
"nnombre de tables:t$nbtablen";
attention, non testé et sans garantie du gouvernement.
a+
--
P'tit Marcel
stats sur les forums modérés http://www.centrale-lyon.org/ng/
J'ai besoin d'un truc tout simple : une fonction sauvegarde qui me crée un dump de la base dans un répertoire et une fonction de restauration
Tu peux utiliser la requète: SELECT * INTO OUTFILE './tonfichier.csv' FIELDS TERMINATED BY ';' ENCLOSED BY '' ESCAPED BY '' LINES TERMINATED BY 'rn' FROM table_membre Ca te permettra d'avoir un .csv.
Pour répondre sur le thème du forum, il te faudrait un script de sauvegarde du genre :
$sql = "SHOW TABLES" $res = mysql_query($sql); if ($res === false) { gestion_erreur_mysql(); } $prefixe = "./sav_".date('ymd'); $fichier_sql = "$prefixe.sql"; $fic = fopen($fichier_sql, 'w'); if ($fic === false) { gestion_erreur_fopen(); } $nbtable=0; $fichiers_csv=array(); while (list($table) = mysql_fetch_row($res)) { $sql = "SHOW CREATE TABLE $table"; $res2 = mysql_query($sql); if ($res2 === false) { gestion_erreur_mysql(); } while (list($ligne) = mysql_fetch_row($res2)) { fwrite($fic, $ligne); } $fichier_csv = "$prefixe_$table.csv"; if(file_exists($fichier_csv)) { unlink($fichier_csv); } $sql = "SELECT * INTO OUTFILE '$fichier_csv' ". "FIELDS TERMINATED BY ';' ENCLOSED BY '' ESCAPED BY '' ". "LINES TERMINATED BY 'rn' FROM $table"; $res2 = mysql_query($sql); if ($res2 === false) { gestion_erreur_mysql(); } $nbtable++; $fichiers_csv[]=$fichier_csv; } fclose($fic); echo "Fin de traitement de sauvegardenn", "Fichier de structure:t$fichier_sqln", "Fichiers de données:n", explode("n", $fichiers_csv), "nnombre de tables:t$nbtablen";
attention, non testé et sans garantie du gouvernement.
a+ -- P'tit Marcel stats sur les forums modérés http://www.centrale-lyon.org/ng/
Matthieu Moy
P'tit Marcel writes:
Tu peux utiliser la requète: SELECT * INTO OUTFILE ./tonfichier.csv' FIELDS TERMINATED BY ';' ENCLOSED BY '' ESCAPED BY ' LINES TERMINATED BY 'rn' FROM table_membre Ca te permettra d'avoir un .csv.
Pour répondre sur le thème du forum, il te faudrait un script de sauvegarde du genre :
Merci à vous deux. Pour l'instant, je reste sur phpMyBackup qui a au moins un intérêt par rapport à votre proposition : il sauvegarde aussi les méta-données (il fait un script SQL).
Mais bon, vos réponses ne sont pas inutiles, l'export csv est aussi dans mon cahier des charges ;-) (pour pouvoir travailler dans un tableur, faire du publipostage, ...).
Tu peux utiliser la requète: SELECT * INTO OUTFILE
./tonfichier.csv' FIELDS TERMINATED BY ';' ENCLOSED BY '' ESCAPED BY
\' LINES TERMINATED BY 'rn' FROM table_membre
Ca te permettra d'avoir un .csv.
Pour répondre sur le thème du forum, il te faudrait un script de
sauvegarde du genre :
Merci à vous deux. Pour l'instant, je reste sur phpMyBackup qui a au
moins un intérêt par rapport à votre proposition : il sauvegarde aussi
les méta-données (il fait un script SQL).
Mais bon, vos réponses ne sont pas inutiles, l'export csv est aussi
dans mon cahier des charges ;-) (pour pouvoir travailler dans un
tableur, faire du publipostage, ...).
Tu peux utiliser la requète: SELECT * INTO OUTFILE ./tonfichier.csv' FIELDS TERMINATED BY ';' ENCLOSED BY '' ESCAPED BY ' LINES TERMINATED BY 'rn' FROM table_membre Ca te permettra d'avoir un .csv.
Pour répondre sur le thème du forum, il te faudrait un script de sauvegarde du genre :
Merci à vous deux. Pour l'instant, je reste sur phpMyBackup qui a au moins un intérêt par rapport à votre proposition : il sauvegarde aussi les méta-données (il fait un script SQL).
Mais bon, vos réponses ne sont pas inutiles, l'export csv est aussi dans mon cahier des charges ;-) (pour pouvoir travailler dans un tableur, faire du publipostage, ...).
-- Matthieu
CrazyCat
Matthieu Moy wrote:
Merci à vous deux. Pour l'instant, je reste sur phpMyBackup qui a au moins un intérêt par rapport à votre proposition : il sauvegarde aussi les méta-données (il fait un script SQL).
Si tu veux un simple dump, j'ai fait un mini-script à http://www.crazycat.info/astuce5-sql-Faire_un_dump_dune_base_MySQL.html
-- Discussions et débats sur l'actualité: http://www.sujets-d-actu.eu
Matthieu Moy wrote:
Merci à vous deux. Pour l'instant, je reste sur phpMyBackup qui a au
moins un intérêt par rapport à votre proposition : il sauvegarde aussi
les méta-données (il fait un script SQL).
Si tu veux un simple dump, j'ai fait un mini-script à
http://www.crazycat.info/astuce5-sql-Faire_un_dump_dune_base_MySQL.html
--
Discussions et débats sur l'actualité: http://www.sujets-d-actu.eu
Merci à vous deux. Pour l'instant, je reste sur phpMyBackup qui a au moins un intérêt par rapport à votre proposition : il sauvegarde aussi les méta-données (il fait un script SQL).
Si tu veux un simple dump, j'ai fait un mini-script à http://www.crazycat.info/astuce5-sql-Faire_un_dump_dune_base_MySQL.html
-- Discussions et débats sur l'actualité: http://www.sujets-d-actu.eu
G.JANY
Les données de la base sont importantes, et je veux en garder des sauvegardes journalières (pour faire une restauration d'une ancienne version en cas de fausse manip, ou bien en cas de perte de données chez mon fournisseur - free.fr pour l'instant). J'ai besoin d'un truc tout simple : une fonction sauvegarde qui me crée un dump de la base dans un répertoire (un truc genre backup.php que je puisse appeler via wget pour pouvoir faire ça d'un cron job depuis une autre machine), et une fonction de restauration (réduite au minimum si le dump est un script SQL).
Peut-être que XtDump pourra s'adapter à tes besoins :
Les données de la base sont importantes, et je veux en garder des
sauvegardes journalières (pour faire une restauration d'une ancienne
version en cas de fausse manip, ou bien en cas de perte de données
chez mon fournisseur - free.fr pour l'instant). J'ai besoin d'un truc
tout simple : une fonction sauvegarde qui me crée un dump de la base
dans un répertoire (un truc genre backup.php que je puisse appeler via
wget pour pouvoir faire ça d'un cron job depuis une autre machine), et
une fonction de restauration (réduite au minimum si le dump est un
script SQL).
Peut-être que XtDump pourra s'adapter à tes besoins :
Les données de la base sont importantes, et je veux en garder des sauvegardes journalières (pour faire une restauration d'une ancienne version en cas de fausse manip, ou bien en cas de perte de données chez mon fournisseur - free.fr pour l'instant). J'ai besoin d'un truc tout simple : une fonction sauvegarde qui me crée un dump de la base dans un répertoire (un truc genre backup.php que je puisse appeler via wget pour pouvoir faire ça d'un cron job depuis une autre machine), et une fonction de restauration (réduite au minimum si le dump est un script SQL).
Peut-être que XtDump pourra s'adapter à tes besoins :
Et couplé à UQiQi ces deux petits outils te permettent de sauvegarder et restaurer ta base. Il existe des versions modifiées prenant en compte la fatidique limite des 30 secondes d'exécution de Free.fr.
G.JANY wrote:
Peut-être que XtDump pourra s'adapter à tes besoins :
Et couplé à UQiQi ces deux petits outils te permettent de sauvegarder et
restaurer ta base. Il existe des versions modifiées prenant en compte la
fatidique limite des 30 secondes d'exécution de Free.fr.
Et couplé à UQiQi ces deux petits outils te permettent de sauvegarder et restaurer ta base. Il existe des versions modifiées prenant en compte la fatidique limite des 30 secondes d'exécution de Free.fr.
Djay
Matthieu Moy vient de nous annoncer :
Bonjour,
Je travaille sur une petite application PHP pour gérer une base d'adhérents d'une association.
Les données de la base sont importantes, et je veux en garder des sauvegardes journalières (pour faire une restauration d'une ancienne version en cas de fausse manip, ou bien en cas de perte de données chez mon fournisseur - free.fr pour l'instant). J'ai besoin d'un truc tout simple : une fonction sauvegarde qui me crée un dump de la base dans un répertoire (un truc genre backup.php que je puisse appeler via wget pour pouvoir faire ça d'un cron job depuis une autre machine), et une fonction de restauration (réduite au minimum si le dump est un script SQL).
Je pourrais apprendre à le faire moi-même en PHP, mais vu mon niveau, j'aimerais avoir un truc déjà testé et éprouvé par d'autres gens (les bugs dans les scripts de backup, en général, on les trouve le jour où on a besoin d'une restauration et c'est déjà trop tard ...).
J'ai essayé différents trucs sur le web, mais pas très convaincu[1].
Bref, est-ce qu'il y a une solution simple et robuste pour faire ce genre de choses ?
Merci,
Avec MySQL, tu peux exporter une table en ligne de commande avec mysqldump
Es-tu sur un serveur Unix ou Windows ?
Si tu es sur un serveur Unix, tu peux utiliser un cron qui executera la commande mysqldump Sinon une tâche planifiée sous Windows pour lancer cette commande.
Je travaille sur une petite application PHP pour gérer une base
d'adhérents d'une association.
Les données de la base sont importantes, et je veux en garder des
sauvegardes journalières (pour faire une restauration d'une ancienne
version en cas de fausse manip, ou bien en cas de perte de données
chez mon fournisseur - free.fr pour l'instant). J'ai besoin d'un truc
tout simple : une fonction sauvegarde qui me crée un dump de la base
dans un répertoire (un truc genre backup.php que je puisse appeler via
wget pour pouvoir faire ça d'un cron job depuis une autre machine), et
une fonction de restauration (réduite au minimum si le dump est un
script SQL).
Je pourrais apprendre à le faire moi-même en PHP, mais vu mon niveau,
j'aimerais avoir un truc déjà testé et éprouvé par d'autres gens (les
bugs dans les scripts de backup, en général, on les trouve le jour où
on a besoin d'une restauration et c'est déjà trop tard ...).
J'ai essayé différents trucs sur le web, mais pas très convaincu[1].
Bref, est-ce qu'il y a une solution simple et robuste pour faire ce
genre de choses ?
Merci,
Avec MySQL, tu peux exporter une table en ligne de commande avec
mysqldump
Es-tu sur un serveur Unix ou Windows ?
Si tu es sur un serveur Unix, tu peux utiliser un cron qui executera la
commande mysqldump
Sinon une tâche planifiée sous Windows pour lancer cette commande.
Je travaille sur une petite application PHP pour gérer une base d'adhérents d'une association.
Les données de la base sont importantes, et je veux en garder des sauvegardes journalières (pour faire une restauration d'une ancienne version en cas de fausse manip, ou bien en cas de perte de données chez mon fournisseur - free.fr pour l'instant). J'ai besoin d'un truc tout simple : une fonction sauvegarde qui me crée un dump de la base dans un répertoire (un truc genre backup.php que je puisse appeler via wget pour pouvoir faire ça d'un cron job depuis une autre machine), et une fonction de restauration (réduite au minimum si le dump est un script SQL).
Je pourrais apprendre à le faire moi-même en PHP, mais vu mon niveau, j'aimerais avoir un truc déjà testé et éprouvé par d'autres gens (les bugs dans les scripts de backup, en général, on les trouve le jour où on a besoin d'une restauration et c'est déjà trop tard ...).
J'ai essayé différents trucs sur le web, mais pas très convaincu[1].
Bref, est-ce qu'il y a une solution simple et robuste pour faire ce genre de choses ?
Merci,
Avec MySQL, tu peux exporter une table en ligne de commande avec mysqldump
Es-tu sur un serveur Unix ou Windows ?
Si tu es sur un serveur Unix, tu peux utiliser un cron qui executera la commande mysqldump Sinon une tâche planifiée sous Windows pour lancer cette commande.