Foros del Web » Programando para Internet » PHP »

Copia seguridad MySQL

Estas en el tema de Copia seguridad MySQL en el foro de PHP en Foros del Web. Hola buenas noches. Quería hacer una copia de seguridad de mi BD desde PHP. En Linux creo que tengo la posiblidad de ejcutar comandos, y ...
  #1 (permalink)  
Antiguo 04/01/2006, 16:29
 
Fecha de Ingreso: junio-2003
Ubicación: Asturias
Mensajes: 2.429
Antigüedad: 20 años, 10 meses
Puntos: 7
Copia seguridad MySQL

Hola buenas noches.

Quería hacer una copia de seguridad de mi BD desde PHP. En Linux creo que tengo la posiblidad de ejcutar comandos, y tuve la idea de ecutar el comando de mysqldump de MySQL.

Sin embargo, también me gustaría poder hacerlo con Windows, y tener un fichero en el servidor con todo el SQL de restauracion.

¿Alguien puede darme alguna solución?

Desde ya, muchas gracias.
__________________
Charlie.
  #2 (permalink)  
Antiguo 04/01/2006, 16:48
Avatar de deadlykyo  
Fecha de Ingreso: noviembre-2005
Ubicación: Cbba - Bolivia
Mensajes: 747
Antigüedad: 18 años, 4 meses
Puntos: 5
como tu dijiste es propio de mysql el mysqldump, puedes hacer lo mismo en windows o linux , para sacar respaldos de tu base de datos, cya
  #3 (permalink)  
Antiguo 04/01/2006, 16:51
Avatar de Panino5001
Me alejo de Omelas
 
Fecha de Ingreso: mayo-2004
Ubicación: -34.637167,-58.462984
Mensajes: 5.148
Antigüedad: 19 años, 10 meses
Puntos: 834
Código PHP:
<?php
$db_host 
"localhost";
$db_name "db";
$db_user "user";
$db_pass "pass";
mysql_connect($db_host,$db_user,$db_pass);
mysql_select_db($db_name) or die("Unable to select database.");
function 
datadump ($table) {
    
$result .= "# Dump of ".$table." \n";
    
$result .= "# Dump DATE : " date("d-M-Y") ."\n\n";
    
$query mysql_query("select * from ".$table);
    
$num_fields = @mysql_num_fields($query);
    
$numrow mysql_num_rows($query);
    while(
$row=mysql_fetch_array($query)) {
  
$result .= "INSERT INTO ".$table." VALUES(";
    for(
$j=0$j<$num_fields$j++) {
    
$row[$j] = addslashes($row[$j]);
    
$row[$j] = ereg_replace("\n","\\n",$row[$j]);
    if (isset(
$row[$j])) $result .= "\"$row[$j]\"" ; else $result .= "\"\"";
    if (
$j<($num_fields-1)) $result .= ",";
   }    
      
$result .= ");\n";
     }
     return 
$result "\n\n\n";
  }
 
$qry2=mysql_list_tables($db_name);
 
$tot_tablas=mysql_num_rows($qry2);
 for(
$i=0;$i<$tot_tablas;$i++){
 
$nombre_tabla=mysql_tablename($qry2,$i);
 
$content.=datadump($nombre_tabla);
 } 
$file_name "MySQL_Database_Backup.sql";
header"Content-Type: application/octet-stream"); 
header"Content-Disposition: attachment; filename=".$file_name.""); 
echo 
$content
?>
  #4 (permalink)  
Antiguo 04/01/2006, 16:55
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
existe la funcion system() que executa comandos no se si es a lo que estas buscando?
  #5 (permalink)  
Antiguo 04/01/2006, 18:01
 
Fecha de Ingreso: junio-2003
Ubicación: Asturias
Mensajes: 2.429
Antigüedad: 20 años, 10 meses
Puntos: 7
Pero eso es para Linux, no sirve para Windows. Gracias, probaré lo de Panino5001 aun que falta lo de Create Table y demás temas . . .
__________________
Charlie.
  #6 (permalink)  
Antiguo 04/01/2006, 18:03
 
Fecha de Ingreso: agosto-2005
Mensajes: 109
Antigüedad: 18 años, 7 meses
Puntos: 0
Cita:
Iniciado por chcma
Pero eso es para Linux, no sirve para Windows.
Eso NO es cierto. Revisa tu documentación, por favor.

Un saludo.
  #7 (permalink)  
Antiguo 04/01/2006, 19:18
Avatar de Panino5001
Me alejo de Omelas
 
Fecha de Ingreso: mayo-2004
Ubicación: -34.637167,-58.462984
Mensajes: 5.148
Antigüedad: 19 años, 10 meses
Puntos: 834
Bieno, para los create podés modificar el script
También podés ver este link: http://www.rinconastur.net/php/ver94.php
  #8 (permalink)  
Antiguo 05/01/2006, 06:02
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
system() o exit() y funciones afines son funciones (valga la rebundancia) generéricas para "lanzar comandos" a ejecutar en la línea de comandos del S.O. que use el servidor que corra PHP.

Es decir .. la función system() por ejemplo funciona igual en PHP bajo windows que Linux .. el detalle principal y diferencia estará en "qué" comando exacto debes usar según el S.O. del servidor ..

Un saludo,
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 16:39.