Foros del Web » Programando para Internet » PHP »

como hacer funcionar este script para realizar backup de mysql ?

Estas en el tema de como hacer funcionar este script para realizar backup de mysql ? en el foro de PHP en Foros del Web. Hola a todos, investigue un poco el tema, y halle este script, y lo acomode un poco pero no funciona Código PHP: <?php // Nombre del archivo de con el cual queremos que se guarde la base de datos $filename  ...
  #1 (permalink)  
Antiguo 01/02/2007, 08:49
 
Fecha de Ingreso: septiembre-2006
Mensajes: 34
Antigüedad: 17 años, 7 meses
Puntos: 0
como hacer funcionar este script para realizar backup de mysql ?

Hola a todos,

investigue un poco el tema, y halle este script, y lo acomode un poco pero no funciona
Código PHP:
<?php
// Nombre del archivo de con el cual queremos que se guarde la base de datos
$filename "mybase.sql";
// Cabezeras para forzar al navegador a guardar el archivo
header("Pragma: no-cache");
header("Expires: 0");
header("Content-Transfer-Encoding: binary");
header("Content-type: application/force-download");
header("Content-Disposition: attachment; filename=$filename");

$usuario="gonzalo"// Usuario de la base de datos, un ejemplo podria ser 'root'
$passwd="1tyemna"// Contraseña asignada al usuario
$bd="colegio"// Nombre de la Base de Datos a exportar

// Funciones para exportar la base de datos
// para windows
$executa "C:\Archivos de programa\MySQL\MySQL Server 5.0\bin\mysqldump.exe -u $usuario --password=$passwd $bd > archivo3.sql";
//para Unix
//$executa = "mysqldump -u $usuario --password=$passwd --opt $bd";
system($executa$resultado);
// Comprobar si se a realizado bien, si no es asi, mostrará un mensaje de error
if (!$resultado) { echo "<H1>Error ejecutando comando: $executa</H1>\n"; }
?>
pienso que la ruta debe estar mal, que no llega hassta el mysqldump, tal vez los espacios en Archivos de programa o algo asi, porque a traves de la consola funciona bien, realiza el dump, este script lo tengo en el htdoc, pensaba que era los permisos pero lei que en windows no existen eso de permisos, mi SO es xp

Gracias de antemano,
saludos.
  #2 (permalink)  
Antiguo 01/02/2007, 10:24
Avatar de mauled  
Fecha de Ingreso: marzo-2005
Ubicación: Cd. de México.
Mensajes: 3.001
Antigüedad: 19 años, 1 mes
Puntos: 33
Re: como hacer funcionar este script para realizar backup de mysql ?

Hay que ver que esto este es para Windows y no para Linux. Tendrias que modificar la ruta para que funcione de manera correcta.

¿Qué error te esta arrojando?

Saludillos.
  #3 (permalink)  
Antiguo 01/02/2007, 19:27
 
Fecha de Ingreso: septiembre-2006
Mensajes: 34
Antigüedad: 17 años, 7 meses
Puntos: 0
Re: como hacer funcionar este script para realizar backup de mysql ?

Hola mauled,

cuando ejecuto el script solamente se inicia la descarga pero el archivo descargado esta vacio, 0 kb, estoy casi seguro que debe ser la ruta, tal vez los espacios entre las palabras, o tal vez utilizar comilla simples o dobles, tendre que probar, el valor de retorno de system es 1

Gracias por la ayuda,
saludos.

Última edición por lucas_1250; 01/02/2007 a las 20:16
  #4 (permalink)  
Antiguo 01/02/2007, 21:38
 
Fecha de Ingreso: septiembre-2006
Mensajes: 34
Antigüedad: 17 años, 7 meses
Puntos: 0
Re: como hacer funcionar este script para realizar backup de mysql ?

despues de tanto buscar, este script me funciona:
Código PHP:
<?php
$filename 
"fichero.sql";
header("Pragma: no-cache");
header("Expires: 0");
header("Content-Transfer-Encoding: binary");
header("Content-type: application/force-download");
header("Content-Disposition: attachment; filename=$filename");


$usuario "gonzalo";
$passwd "clave";
$bd "colegio";
$llamada='"c:\\Archivos de programa\\MySQL\\MySQL Server 5.0\\bin\\mysqldump.exe"';
//windows
$executa "$llamada -u $usuario --password=$passwd --opt $bd";
system($executa$resultado);

//para Unix
//$executa = "mysqldump -u $usuario --password=$passwd --opt $bd";
//system($executa, $resultado);


if (!$resultado) { echo "<H1>Error ejecutando comando: $executa</H1>\n"; }

?>
notese que en $llamada se utiliza primero comillas simples y despues dobles y despues en $executa otra vez comillas dobles, el problema surge por los espacios en la ruta. la fuente es esta pagina:

www . programacion. com / blogs/ 15_maelmori / archive / 316_rutas_con_espacios_php_y_mysqldump_bajo_window s . html

Mi meta es realizar backups automaticos a una hora determinada por el usuario, si me podrian orientar al respecto les estare muy agradecido,

saludos.
  #5 (permalink)  
Antiguo 19/08/2007, 17:28
Avatar de Vincen  
Fecha de Ingreso: agosto-2007
Mensajes: 17
Antigüedad: 16 años, 8 meses
Puntos: 0
Re: como hacer funcionar este script para realizar backup de mysql ?

gracias por esta ayuda! una consultita referente a esto, como podria por ejemplo fijar un orden de bolcado de tablas? ya que uso el motor innodb por el tema de claves referenciadas. Si alguien podria ayudarme estaria muy agradecido!!
  #6 (permalink)  
Antiguo 19/08/2007, 20:44
 
Fecha de Ingreso: enero-2007
Ubicación: Buenos Aires, ARG
Mensajes: 71
Antigüedad: 17 años, 3 meses
Puntos: 2
Re: como hacer funcionar este script para realizar backup de mysql ?

Bueno en principio creo que no se puede decidir una cierta hora para hacer un backup, desde php, ya que el codigo php solo se ejecuta cuando un usuario lo usa, no lo hace automaticamente solo.

Yo lo + parecido q hice(con acceso al servidor) es un cron en linux q se ejecute todos los dias a la mañana para hacer backup x ejemplo.... per otra forma la verdad no se...
  #7 (permalink)  
Antiguo 19/08/2007, 23:22
 
Fecha de Ingreso: julio-2006
Ubicación: sevilla
Mensajes: 251
Antigüedad: 17 años, 9 meses
Puntos: 5
Re: como hacer funcionar este script para realizar backup de mysql ?

La unica forma de hacerlo sin cron sería creando un javascript ke te llamará a la página php despues de un tiempo determinado pero claro es solo una idea.
  #8 (permalink)  
Antiguo 20/08/2007, 21:14
Avatar de Vincen  
Fecha de Ingreso: agosto-2007
Mensajes: 17
Antigüedad: 16 años, 8 meses
Puntos: 0
Re: como hacer funcionar este script para realizar backup de mysql ?

no.. no es orden de a que hora hacer el backup.. sino de en vez de hacer el backup de las tablas por ejemplo tabla1 y despues tabla2, que ponga primero tabla2 y tabla1
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 09:16.