Foros del Web » Programación para sitios web » 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, 15:29
 
Fecha de Ingreso: junio-2003
Ubicación: Asturias
Mensajes: 2.266
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, 15:48
Avatar de deadlykyo  
Fecha de Ingreso: noviembre-2005
Ubicación: Cbba - Bolivia
Mensajes: 747
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, 15:51
Avatar de Panino5001
Replicante
 
Fecha de Ingreso: mayo-2004
Ubicación: Buenos Aires
Mensajes: 4.618
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
?>
__________________
Om maa na pum imjya
Kothbiro
Ke luru do ketaa-lha
  #4 (permalink)  
Antiguo 04/01/2006, 15:55
Avatar de mauled  
Fecha de Ingreso: marzo-2005
Ubicación: Cd. de México.
Mensajes: 2.898
existe la funcion system() que executa comandos no se si es a lo que estas buscando?
  #5 (permalink)  
Antiguo 04/01/2006, 17:01
 
Fecha de Ingreso: junio-2003
Ubicación: Asturias
Mensajes: 2.266
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, 17:03
 
Fecha de Ingreso: agosto-2005
Mensajes: 109
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, 18:18
Avatar de Panino5001
Replicante
 
Fecha de Ingreso: mayo-2004
Ubicación: Buenos Aires
Mensajes: 4.618
Bieno, para los create podés modificar el script
También podés ver este link: http://www.rinconastur.net/php/ver94.php
__________________
Om maa na pum imjya
Kothbiro
Ke luru do ketaa-lha
  #8 (permalink)  
Antiguo 05/01/2006, 05:02
O_O
 
Fecha de Ingreso: noviembre-2002
Ubicación: Santiago - Chile
Mensajes: 34.414
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

¿Nuevo en el foro? Regístrate



La zona horaria es GMT -6. Ahora son las 10:34.
SEO by vBSEO 3.3.2