Automatiser une sauvegarde MySQL

WRInaute discret
Bonjour à tous,

Je suis à la recherche d'un moyen afin d'automatiser quotidiennement une sauvegarde de ma base MySQL. Comment faites vous ? Quelle est la meilleure solution à votre avis sachant que je suis encore en mutualisé ?

Merci d'avance
 
WRInaute accro
avec un sitye de cron (webcron par exemple) tu peux lancer tous les jours à la meme heure un script qui genere en xml tes tables. par contre après faut que tu trouves un moyen de les recuperer sur ton ordi
 
WRInaute discret
Ok ! Webcron pour automatiser. Mais un script qui copie une base Mysql et l'envoi par mail ou ftp en standard ca existe quelque part ? Merci en tout cas
 
WRInaute occasionnel
beber24 a dit:
Ok ! Webcron pour automatiser. Mais un script qui copie une base Mysql et l'envoi par mail ou ftp en standard ca existe quelque part ? Merci en tout cas

j'ai un truc qui devrait t'aller. je te le donne en MP
 
WRInaute occasionnel
voila le script que j'utilise :

Code:
<?php
$db_name = 'mabase' ;   // a définir correctement
$host = 'localhost' ;   // a définir correctement
$user = 'mabase' ;   // a définir correctement
$password = 'mo2passe' ;   // a définir correctement
$local_dir = "/your/path/to/save/" ;   // a définir correctement

$file_name = $db_name.'-'.date('Y-m-d').".sql" ; 
$command  = "mysqldump --host=".$host." --user=".$user." --password=".$password ;
$command .= " --skip-opt --compress --add-locks --create-options --disable-keys --quote-names --quick --extended-insert --complete-insert --default-character-set=latin1 --compatible=mysql40 --result-file=".$local_dir.$file_name ;
$command .= " ".$db_name ;

/*
// si tu ne veux sauver que quelques tables, tu rajoutes ça :
$tables = array(
 'table1',
 'table2',
 'table5',
) ;
$command .= " ".implode(' ',$tables) ;
*/

echo ( "Execution de la commande : ".$command ) ;
system($command);

// et eventuellement :
echo ( "Compression du fichier....." );
system("cd ".$local_dir."; gzip ".$file_name);
?>

le tour est joué...

et pour importer :

Code:
mysql --database=nom_de_la_base_destination -u root < ton_fichier_sql.sql
(bien sur, tu remplaces root par ton nom d'utilisateur eventuellement... et tu rajoutes un mot de passe si besoin)
 
WRInaute occasionnel
Merci pour ce script, il marche si je recopie le cho en ligne de commande mais pas en appellant le fichier PHP directement / PB de droits root ?
 
WRInaute occasionnel
link182 a dit:
Merci pour ce script, il marche si je recopie le cho en ligne de commande mais pas en appellant le fichier PHP directement / PB de droits root ?
Php dois avoir les droits en ecriture dans ton dossier de destination ! (of course :wink: )
 
Discussions similaires
Haut