Foros del Web » Programando para Internet » PHP »

Generar backup desde PHP a mi BBDD del servidor

Estas en el tema de Generar backup desde PHP a mi BBDD del servidor en el foro de PHP en Foros del Web. Hola amigos, tengo un aplicativo en PHP colgado en un servidor web y por seguridad de los datos debo crear una opción en donde el ...
  #1 (permalink)  
Antiguo 20/03/2011, 11:33
 
Fecha de Ingreso: enero-2010
Ubicación: Colombia
Mensajes: 238
Antigüedad: 14 años, 3 meses
Puntos: 2
De acuerdo Generar backup desde PHP a mi BBDD del servidor

Hola amigos, tengo un aplicativo en PHP colgado en un servidor web y por seguridad de los datos debo crear una opción en donde el usuario, desde la interfaz del usuario final pueda generar backup con solamente presionar un boton.
ALguno conoce un script que genere este backup yque funcione desde PHP a la base de datos de mi servidor?
  #2 (permalink)  
Antiguo 20/03/2011, 11:39
Avatar de lair  
Fecha de Ingreso: enero-2009
Ubicación: header('Location: Morelia");
Mensajes: 1.052
Antigüedad: 15 años, 3 meses
Puntos: 46
Respuesta: Generar backup desde PHP a mi BBDD del servidor

Hola.

revisa aqui mismo en el foro, hay informacion a cerca de eso:
http://www.forosdelweb.com/f18/backu...o-1-0b-166532/

Espero te sirva, Suerte.
  #3 (permalink)  
Antiguo 21/03/2011, 17:43
 
Fecha de Ingreso: enero-2010
Ubicación: Colombia
Mensajes: 238
Antigüedad: 14 años, 3 meses
Puntos: 2
Respuesta: Generar backup desde PHP a mi BBDD del servidor

Hola lair muchas gracias por indicarme donde se encuentra el script, y de echo esta muy bueno,
lo he probado y me sale el siguiente error :


ATENCION: Probablemente ha ocurrido un error

EOTEOTEOTEOTEOTEOTEOTEOTEOTEOTEOTEOTEOTEOTEOTEOTEO TEOTEOTEOTEOTEOTEOTEOTEOTEOTEOTEOTEOTEOTEOTEOTEOTE OTEOTEOTEOTEOTEOT



Oviamente le cambie el usuario, passwod, etc de acuerdo a mis necesidades. aqui miestro el codigo:

PDT: lo estoy prrobando en un servidor local, ¿sera que por eso no me funciona?

/* Usuario para la conexion a Mysql. */
$usurio = "root";
/* Password para la conexion a Mysql. */
$passwd = "12345";
/* Host para la conexion a Mysql. */
$host = "localhost";
/* Base de Datos que se seleccionará. */
$mydb = "mydb";
/* Nombre del fichero que se descargará. */
$nombre = "dump.txt";
/* Determina si la tabla será vaciada (si existe) cuando restauremos la tabla. */
$drop = false;
/*
* Array que contiene las tablas de la base de datos que seran resguardadas.
* Puede especificarse un valor false para resguardar todas las tablas
* de la base de datos especificada en $bd.
*
* Ejs.:
* $tablas = false;
* o
* $tablas = array("tabla1", "tabla2", "tablaetc");
*
*/
$tablas = false;
/*
* Tipo de compresion.
* Puede ser "gz", "bz2", o false (sin comprimir)
*/
$compresion = false;

/* Conexion y eso*/
$conexion = mysql_connect($host, $usurio, $passwd)
or die("No se conectar con el servidor MySQL: ".mysql_error());
mysql_select_db($mydb, $conexion)
or die("No se pudo seleccionar la Base de Datos: ". mysql_error());


/* Se busca las tablas en la base de datos */
if ( empty($tablas) ) {
$consulta = "SHOW TABLES FROM $mydb;";
$respuesta = mysql_query($consulta, $conexion)
or die("No se pudo ejecutar la consulta: ".mysql_error());
while ($fila = mysql_fetch_array($respuesta, MYSQL_NUM)) {
$tablas[] = $fila[0];
}
}


/* Se crea la cabecera del archivo */
$info['dumpversion'] = "1.1b";
$info['fecha'] = date("d-m-Y");
$info['hora'] = date("h:m:s A");
$info['mysqlver'] = mysql_get_server_info();
$info['phpver'] = phpversion();
ob_start();
print_r($tablas);
$representacion = ob_get_contents();
ob_end_clean ();
preg_match_all('/(\[\d+\] => .*)\n/', $representacion, $matches);
$info['tablas'] = implode("; ", $matches[1]);
$dump = EOT;
# +================================================= ==================
# | YoDumpeo! {$info['dumpversion']}
# | por fran86 <[email protected]>
# |
# | Generado el {$info['fecha']} a las {$info['hora']} por el usurio '$usurio'
# | Servidor: {$_SERVER['HTTP_HOST']}
# | MySQL Version: {$info['mysqlver']}
# | PHP Version: {$info['phpver']}
# | Base de datos: '$bd'
# | Tablas: {$info['tablas']}
# |
# +-------------------------------------------------------------------

EOT;
foreach ($tablas as $tabla) {

$drop_table_query = "";
$create_table_query = "";
$insert_into_query = "";

/* Se halla el query que será capaz vaciar la tabla. */
if ($drop) {
$drop_table_query = "DROP TABLE IF EXISTS `$tabla`;";
} else {
$drop_table_query = "# No especificado.";
}

/* Se halla el query que será capaz de recrear la estructura de la tabla. */
$create_table_query = "";
$consulta = "SHOW CREATE TABLE $tabla;";
$respuesta = mysql_query($consulta, $conexion)
or die("No se pudo ejecutar la consulta: ".mysql_error());
while ($fila = mysql_fetch_array($respuesta, MYSQL_NUM)) {
$create_table_query = $fila[1].";";
}

/* Se halla el query que será capaz de insertar los datos. */
$insert_into_query = "";
$consulta = "SELECT * FROM $tabla;";
$respuesta = mysql_query($consulta, $conexion)
or die("No se pudo ejecutar la consulta: ".mysql_error());
while ($fila = mysql_fetch_array($respuesta, MYSQL_ASSOC)) {
$columnas = array_keys($fila);
foreach ($columnas as $columna) {
if ( gettype($fila[$columna]) == "NULL" ) {
$values[] = "NULL";
} else {
$values[] = "'".mysql_real_escape_string($fila[$columna])."'";
}
}
$insert_into_query .= "INSERT INTO `$tabla` VALUES (".implode(", ", $values).");\n";
unset($values);
}

$dump .= EOT;

# | Vaciado de tabla '$tabla'
# +------------------------------------->
$drop_table_query;


# | Estructura de la tabla '$tabla'
# +------------------------------------->
$create_table_query;


# | Carga de datos de la tabla '$tabla'
# +------------------------------------->
$insert_into_query;

EOT;
}

/* Envio */
if ( !headers_sent() ) {
header("Pragma: no-cache");
header("Expires: 0");
header("Content-Transfer-Encoding: binary");
switch ($compresion) {
case "gz":
header("Content-Disposition: attachment; filename=$nombre.gz");
header("Content-type: application/x-gzip");
echo gzencode($dump, 9);
break;
case "bz2":
header("Content-Disposition: attachment; filename=$nombre.bz2");
header("Content-type: application/x-bzip2");
echo bzcompress($dump, 9);
break;
default:
header("Content-Disposition: attachment; filename=$nombre");
header("Content-type: application/force-download");
echo $dump;
}
} else {
echo "<b>ATENCION: Probablemente ha ocurrido un error</b><br />\n<pre>\n$dump\n</pre>";
}

Etiquetas: backup, bbdd, servidor
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 05:54.