PDA

Voir la version complète : Restauration et dump de base MySQL


amadeus
18/09/2006, 10h49
Suite à pas mal de demande, je post ici mon script de dump de base MySQL et de restauration.

ATTENTION : toujours mettre se script dans un répertoire avec un htaccess et une protection d'accès !
cf. ce tutorial (http://www.exhaustif.com/apache-000010.art.html)


if($local)
$dirBin = 'C:\\PF\\mysql-4.0.22-win\\bin\\';
else
$dirBin = '';

$dbhost = '';
$dbuser = '';
$dbpass = '';
$dbbase = '';
$ltable = '';

$dumpFile = date('Y.m.d-H.i.s_') . $dbbase . '.sql';

$todo = $_GET['todo'];

if($todo == 'dump')
{
$cmd = $dirBin . 'mysqldump -h' . $dbhost . ' -u'.$dbuser . ' --password=' . $dbpass .
' --complete-insert --add-drop-table ' . $dbbase . ' ' . $ltable . ' > ' . $dumpFile;
exec($cmd);
}

if($todo == 'suppr')
{
unlink($_GET['file']);
}

if($todo == 'restaurer')
{
if (move_uploaded_file($_FILES['fichier']['tmp_name'], "./dumptmp.sql"))
{
$cmd = $dirBin . 'mysql -h' . $dbhost . ' -u'.$dbuser . ' --password=' . $dbpass .
' ' . $dbbase . ' < ./dumptmp.sql';
exec($cmd);
unlink("./dumptmp.sql");
}
else
{
print "Possible file upload attack! Here's some debugging info:\n";
var_dump($_FILES);
}
}


<p>Dump de la base :
<? if($todo == 'dump') { ?><a href="<?=$dumpFile?>">Dump</a> <a href="?todo=suppr&amp;file=<?=$dumpFile?>">Suppr</a><? } else {?>
<a href="?todo=dump">go</a>
<? if($todo == 'suppr') { ?> ( Fichier supprimé )<? } ?>
<? } ?>

</p>
<p>Restauration : </p>

<form enctype="multipart/form-data" action="?todo=restaurer" method="POST">
<input type="hidden" name="MAX_FILE_SIZE" value="10000000">
<input name="fichier" type="file">
<input type="submit" value="importer">
</form>