Hala,
Lo configuras, lo subes al server junto con la db y lo lanzas...
Un saludo
'restore_db.php':
Código PHP:
<?php
/*
http://localhost/restore_db.php
*/
//------------------------------------------------------------------------------------------
// Definiciones
// Conexión con la Base de Datos.
$db_server = "localhost";
$db_name = "xxxxxx";
$db_username = "xxxxxx";
$db_password = "xxxxxx";
// Nombre del archivo sql de la db.
$filename = "backupdb";
//------------------------------------------------------------------------------------------
// No tocar
error_reporting( E_ALL & ~E_NOTICE );
define( 'Str_VERS', "1.0.6 del 02/12/2005" );
//------------------------------------------------------------------------------------------
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<HTML>
<HEAD>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Restore la Base de Datos</title>
<!-- no cache headers -->
<meta http-equiv="Pragma" content="no-cache">
<meta http-equiv="no-cache">
<meta http-equiv="Expires" content="-1">
<meta http-equiv="Cache-Control" content="no-store">
<meta http-equiv="Cache-Control" content="no-cache">
<meta http-equiv="Cache-Control" content="must-revalidate">
<!-- end no cache headers -->
</HEAD>
<BODY
bgcolor="#D5D5D5"
text="#000000"
id="all"
leftmargin="25"
topmargin="25"
marginwidth="25"
marginheight="25"
link="#000020"
vlink="#000020"
alink="#000020">
<center><h1>Restore la Base de Datos</h1></center><br>
<strong>
<?php
@set_time_limit( 0 );
echo( "- Base de Datos: '$db_name' en '$db_server'.<br>" );
$error = false;
$hay_Zlib = false;
echo( "- Usaré el BackUp de la Base de Datos: '$filename'<br>" );
if( !$file = @fopen( $filename,"r" ) ) {
echo ("<br>- Lo siento, no encuentro o no puedo abrir: '$filename'.<br>");
$error = true;
}
else {
if( fseek($file, 0, SEEK_END)==0 )
$file_offset = ftell($file);
else {
echo ("<br>- Lo siento, no puedo obtener las dimensiones de '$filename'.<br>");
$error = true;
}
fclose( $file );
}
if (!$error) {
$dbconnection = @mysql_connect( $db_server, $db_username, $db_password );
if ($dbconnection)
$db = mysql_select_db( $db_name );
if ( !$dbconnection || !$db ) {
echo( "<br>" );
echo( "- Lo siento, la conexion con la Base de datos ha fallado: ".mysql_error()."<br>" );
$error = true;
}
else {
echo( "<br>" );
echo( "- He establecido conexion con la Base de datos.<br>" );
}
}
if (!$error) {
$result = mysql_list_tables( $db_name );
if (!$result) {
print "<br>- Error, no puedo obtener la lista de las tablas.<br>";
print '<br>- MySQL Error: ' . mysql_error(). '<br>';
$error = true;
}
else {
// $count es el número de tablas en la base de datos
$count = mysql_num_rows($result);
if( !$count ) {
echo "- No ha sido necesario borrar la estructura de la Base de datos, estaba vacía.<br>";
}
else {
while ($row = mysql_fetch_row($result)) {
$deleteIt = mysql_query("DROP TABLE $row[0]");
if( !$deleteIt ) {
echo( "<br>" );
print "- Lo siento, error al borrar la tabla $row[0].<br>";
$error = true;
break;
}
}
echo "- He borrado la estructura de la Base de Datos.<br>";
}
mysql_free_result($result);
}
}
if( !$error ) {
$t_start = time();
echo( "<br>" );
$restorecommand = "mysql -u$db_username -p$db_password $db_name < $filename";
// Perform restore
passthru( "$restorecommand", $error );
if( $error ) {
echo( "<br>- Problema en passthru. Error = $error<br>" );
$error = true;
}
echo( "<pre>" );
echo( "- Base de Datos procesada................... $file_offset bytes<br>" );
echo( "</pre>" );
$t_now = time();
$t_delta = $t_now - $t_start;
if( !$t_delta )
$t_delta = 1;
$t_delta = floor(($t_delta-(floor($t_delta/3600)*3600))/60)." minutos y "
.floor($t_delta-(floor($t_delta/60))*60)." segundos.";
echo( "- He completado el Restore de la Base de Datos en $t_delta<br>" );
}
if ( $dbconnection )
mysql_close();
echo( "</strong><br><br><hr><center><small>" );
setlocale( LC_TIME,"spanish" );
echo strftime( "%A %d %B %Y - %H:%M:%S", time() );
echo( "<br>vers. " . Str_VERS );
echo( "</small></center><br>" );
echo( "</BODY>" );
echo( "</HTML>" );
//------------------------------------------------------------------------------------------
// END
?>