Foros del Web » Programando para Internet » PHP »

problema con copia de seguridad

Estas en el tema de problema con copia de seguridad en el foro de PHP en Foros del Web. hola estoy intentando hacer una copia de seguridad de mi base de datos desde un script php, tengo lo siguiente if($accion=="copia"){ echo "Su base está ...
  #1 (permalink)  
Antiguo 29/07/2006, 11:34
Avatar de alcamadi  
Fecha de Ingreso: marzo-2006
Mensajes: 45
Antigüedad: 18 años, 1 mes
Puntos: 0
problema con copia de seguridad

hola estoy intentando hacer una copia de seguridad de mi base de datos desde un script php, tengo lo siguiente

if($accion=="copia"){
echo "Su base está siendo salvada.......\n<br>";
system("mysqldump --host=localhost --user=usuario --password=contraseña base_datos > backup_base.sql");
echo "Compresión del archivo.....\n<br>";
system("gzip backup_base.sql");
echo "Fin. Puede recuperar la base por FTP";
}

al darle clic en la opcion hacer copia de seguridad me ejecuta el escript y me crea el archivo backup_base.sql pero lo crea vacio ... no se si tenga que configurar algo o si esta mal el codigo??
  #2 (permalink)  
Antiguo 29/07/2006, 11:46
Avatar de Riven-Ward  
Fecha de Ingreso: julio-2006
Mensajes: 33
Antigüedad: 17 años, 8 meses
Puntos: 0
Has el system() asi:

Código:
<?php
[...]
system ("mysqldump --opt -h localhost -u usuario -p password base_de_datos | gzip > backup_base.sql");
[...]
?>
Salu2!
  #3 (permalink)  
Antiguo 29/07/2006, 12:03
Avatar de alcamadi  
Fecha de Ingreso: marzo-2006
Mensajes: 45
Antigüedad: 18 años, 1 mes
Puntos: 0
gracias por la respuesta Riven-Ward
me quedo asi

if($accion=="copia"){
echo "Su base está siendo salvada.......\n<br>";
system ("mysqldump --opt -h localhost -u usuario -p contrasena base_datos | gzip > backup_base.sql");
echo "Fin. Puede recuperar la base por FTP";
}

pero ahora ni crea el archivo .... ????
y otra pregunta como lo guardo en una carpeta especifica?
  #4 (permalink)  
Antiguo 29/07/2006, 12:20
Avatar de Riven-Ward  
Fecha de Ingreso: julio-2006
Mensajes: 33
Antigüedad: 17 años, 8 meses
Puntos: 0
Ups :P.

Puedes entonces hacer un mysql_query con un SELECT hacia un archivo, sacando los nombres de las tablas desde un array. Algo asi?:

Código:
<?php
$archivo = "backup.sql";
$tabla = array ("algo", "algo2", "algo3");
foreach ($tabla as $k) {
mysql_query ("SELECT * INTO OUTFILE '$archivo' FROM {$k}");
}
?>
EDITADO: Ahora que me doy cuenta no te sirve porque te modificaría el archivo con cada tabla.

En la URL que te pongo hay varios métodos para hacer lo que quieres, :

h tt p ://w ww . sitepo int. com / article/ backing-up-mysqldump

Salu2!

PD: Perdón por los espacios en la URL, esque no me deja ponerlas aún :-\

Última edición por Riven-Ward; 29/07/2006 a las 12:27
  #5 (permalink)  
Antiguo 29/07/2006, 16:48
Avatar de alcamadi  
Fecha de Ingreso: marzo-2006
Mensajes: 45
Antigüedad: 18 años, 1 mes
Puntos: 0
gracias por el enlace ... pero y a lo habia visto y ninguna me sirvio, no se que pasa porqeu el documento si lo crea pero sin nada... voy a seguir investigando a ver que encuentro, si tienes o alguine mas tiene otro metodo les agradezco

Estoy mirando este codigo a ver si sale y lo modifico para mis necesidades
http://www.manualphp.es/post25.html
  #6 (permalink)  
Antiguo 29/07/2006, 18:12
Avatar de alcamadi  
Fecha de Ingreso: marzo-2006
Mensajes: 45
Antigüedad: 18 años, 1 mes
Puntos: 0
creo que ya resolvi el problema que tenia, aunque no se si es lo correcto.
copie el ejecutable mysqldump a la carpeta donde ejecuto el script php y listo crea el archivo donde quiero que lo guarde y con todas las tablas y la informacion de la base de datos

tengo el siguiente codigo para hacer el backup:

<?php
//archivos de conexion conla base de datos
include"../../conexion/config.php";
include"../../conexion/conex.php";
//captura de variables
$accion=$_GET["opcion"];
$destino="backup_emp";
if($accion=="copia"){
echo "Su base está siendo salvada.......\n<br>";
system("mysqldump -u usuario -pcontrasena --opt base_datos > $destino/backup.sql");
echo "Fin. Puede recuperar la base por FTP";
}
?>

recibo cualquier sugerencia :)
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 23:37.