OVH Community, votre nouvel espace communautaire.

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

Code PHP:
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);
        }
    } 
Code HTML:

Dump de la base : "">Dump "?todo=suppr&file=">Suppr "?todo=dump">go ( Fichier supprimé )

Restauration :

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