Foros del Web » Programación web » PHP »

script para hacer backup de bd mysql

Estas en el tema de script para hacer backup de bd mysql en el foro de PHP en Foros del Web. Hola he estado investigando sobre como hacer un backup de una bd en mysql y pues con la orden mysqldump --opt mybase > /directorio/archivo.sql se ...
  #1 (permalink)  
Antiguo 18/07/2003, 10:43
Avatar de andinistas  
Fecha de Ingreso: julio-2003
Ubicación: Bogotá COL
Mensajes: 1.000
Antigüedad: 11 años, 2 meses
Puntos: 0
script para hacer backup de bd mysql

Hola he estado investigando sobre como hacer un backup de una bd en mysql y pues con la orden

mysqldump --opt mybase > /directorio/archivo.sql

se puede hacer, pero he querido incluirlo en un script de php para hacer el backup remotamente bajo http y no ir hasta el server y hacerlo manualmente :o)

miren el script

<?
// 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="andinistas"; // Usuario de la base de datos, un ejemplo podria ser 'root'
$passwd="xyz"; // Contraseña asignada al usuario
$bd="mybase.sql"; // Nombre de la Base de Datos a exportar

// Funciones para exportar la base de datos
// para windows
//$executa = "c:\mysql\bin\mysqldump.exe -u $usuario --password=$passwd --opt $bd";

//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"; }

?>

bueno en windows funciona al pelo pero en Unix no, debe ser porque al interpretar mysqldump no sabe que hacer, como puedo ejecutar esto?? saben algo?? o me podrian echar una mano con el script para Unix??


gracias

  #2 (permalink)  
Antiguo 18/07/2003, 13:57
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 12 años, 3 meses
Puntos: 15
Hola,

A mi se me ocurre que no tiene mysqldump en el path y que tendrias que dar la ruta completa hasta el ejecutable, igual que haces en windows. Otro posible problema puede ser que el usuario de unix asignado a PHP (o a Apache), no tenga permisos para ejecutar mysqldump.

Saludos.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #3 (permalink)  
Antiguo 04/01/2007, 19:53
 
Fecha de Ingreso: enero-2007
Ubicación: Cochabamba - Bolivia
Mensajes: 346
Antigüedad: 7 años, 8 meses
Puntos: 2
Re: script para hacer backup de bd mysql

No es mas facil que utilices la funcion "system"?

system("mysqldump -u root --password= --opt usa > $nombre");

Te obtiene el comando mysqldump de donde este localizado, y en algun lugar asignas algo a la variable $nombre y listo.. Solo que a mi me da el .sql vacio.
  #4 (permalink)  
Antiguo 04/01/2007, 21:31
Avatar de CrepitantE  
Fecha de Ingreso: octubre-2006
Ubicación: Colombia
Mensajes: 417
Antigüedad: 7 años, 10 meses
Puntos: 7
Re: script para hacer backup de bd mysql

Utiliza el Rapid Leech (www·rapidleech·com), puedes hacer backup de las bases de datos y trasferirlas a otro hosting... Te lo recomiendo, maneja archivos grandes en segundos.
  #5 (permalink)  
Antiguo 05/01/2007, 05:11
 
Fecha de Ingreso: marzo-2005
Ubicación: Sevilla
Mensajes: 277
Antigüedad: 9 años, 6 meses
Puntos: 2
Re: script para hacer backup de bd mysql

<?php
/**************************************************
autor : leo genilhu
email : [email protected]
data : 17/12/2003
descrição: criar arquivo de backup do banco mysql
**************************************************/
$host = ""; // host do banco
$user = ""; // usuário do banco
$senha = ""; // senha do banco

$dbc = mysql_connect($host, $user, $senha);
$m = mysql_select_db("test", $dbc);

$sql = "SHOW DATABASES";
$sts = mysql_query($sql,$dbc) or die (mysql_error());
$data = date("d-m-y");

while($row = mysql_fetch_array($sts)){
$nome = $row[0];
$NARQUIVO = $nome."-".$data;
$resp = `mysqldump --host=$host --user=$user --password=$senha --databases $nome > /home/user/public_html/$NARQUIVO.sql` ;
}
$arquivo = "mysql_".$data;
// criar os pacotinhos com todos os arquivos.sql
$resp = `tar -cvzf /usr/backup/$arquivo.tar.gz /home/user/public_html/*.sql`;
$resp = `rm *.sql`;
?>


Encxontre esto x ahi, es para salvar bajo linux, a lo mejor te ayuda
  #6 (permalink)  
Antiguo 05/01/2007, 13:09
 
Fecha de Ingreso: enero-2007
Ubicación: Cochabamba - Bolivia
Mensajes: 346
Antigüedad: 7 años, 8 meses
Puntos: 2
Re: script para hacer backup de bd mysql

SHOW DATA BASES nos muestra todas las bases de datos. Ese Codigo te sirve para todas las bases de datos que tengas en el servidor.

¿Como haces para una sola base de datos especifica?

Ya lo probe y me bota full archivos vacios, o sea sin contenido, por que? Que estoy haciendo mal YO? A Alguien le salio bien?
  #7 (permalink)  
Antiguo 18/07/2008, 15:05
 
Fecha de Ingreso: julio-2008
Mensajes: 4
Antigüedad: 6 años, 2 meses
Puntos: 0
Respuesta: script para hacer backup de bd mysql

Hola

Estoy tratando de hacer un backup de la BD de MySQL desde una aplicacion en C# con la siguiente linea
System.Diagnostics.Process p= new System.Diagnostics.Process();
p.StartInfo.FileName=@"C:\Archivos de programa\MySQL\MySQL Server 4.1\bin\mysqldump.exe";
p.StartInfo.Arguments = "--host=localhost --user=usuario1 --password=xxx --databases nombreBD -p >C:\back\backup.sql";
p.Start();
Pero al momento de guardarlo me sale un error el 1102
Para crear la BD use el administrator de Mysql, aunque este trae la opcion para hacer backup, necesito que sea transparente al usuario y poderlo hacer desde mi aplicacion.

Gracias

Última edición por LSFMFJ; 18/07/2008 a las 15:10
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 13:59.
SEO by vBSEO 3.3.2