Foros del Web » Programando para Internet » PHP »

Respaldar Base de datos MYSQL..

Estas en el tema de Respaldar Base de datos MYSQL.. en el foro de PHP en Foros del Web. Luego de leer bastante y ver cada tema similar a mi inquietud, no logre aclarar mi duda... espero me puedan ayudar. Mi consulta es la ...
  #1 (permalink)  
Antiguo 23/11/2010, 12:44
Avatar de Flakiss  
Fecha de Ingreso: septiembre-2009
Mensajes: 113
Antigüedad: 14 años, 7 meses
Puntos: 1
Respaldar Base de datos MYSQL..

Luego de leer bastante y ver cada tema similar a mi inquietud, no logre aclarar mi duda... espero me puedan ayudar.

Mi consulta es la siguiente... en sql server existe la opcion de por medio de una query respaldar toda la base de datos... "BACKUP DATABASE nombreBD ......"

pero he buscado algo asi para mysql y solo me da como ejemplo "BACKUP TABLE nombreTable ....." no he podido con la sintaxis correcta...

el comando mysqldump no me sirve ya que en el servidor no es posible ejecutar el "system()" ó "exec"() entonces debe ser por medio de query...

tambien vi un script llamado "dumpeo" (me parece...) funciona bien pero solo para BD pequeñas... la mia ya pesa bastante.

espero me puedan ayudar!!

desde ya se agradece su tiempo :D
  #2 (permalink)  
Antiguo 23/11/2010, 12:56
Avatar de Vun
Vun
Colaborador
 
Fecha de Ingreso: agosto-2009
Ubicación: Benalmádena, España
Mensajes: 2.265
Antigüedad: 14 años, 8 meses
Puntos: 150
Respuesta: Respaldar Base de datos MYSQL..

¿no tienes phpmyadmin en tu server? ¿de cuanto es el tamaño de tu base de datos? Luego podrias usar una aplicacion para conectar a la base de datos y hacer tus exportaciones, mira este es un ejemplo: http://mysql-front.softonic.com/
  #3 (permalink)  
Antiguo 23/11/2010, 13:18
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 11 meses
Puntos: 1517
Respuesta: Respaldar Base de datos MYSQL..

Verifica si este te sirve http://www.forosdelweb.com/f18/aport...-datos-832116/
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #4 (permalink)  
Antiguo 23/11/2010, 13:22
Avatar de Flakiss  
Fecha de Ingreso: septiembre-2009
Mensajes: 113
Antigüedad: 14 años, 7 meses
Puntos: 1
Respuesta: Respaldar Base de datos MYSQL..

gracias por responder

lo que sucede es que necesito un procedimiento de tipo query... para hacer una pequeña pantalla donde el usuario del sistema haga sus propios respaldos, esta actividad debe ser responsabilidad de él....

como te mencionan ese script "YoDumpeo" funcionaba muy bien, hasta que la BD creo...
actualmente va en 20Mb



saludos!
  #5 (permalink)  
Antiguo 24/11/2010, 08:01
Avatar de Flakiss  
Fecha de Ingreso: septiembre-2009
Mensajes: 113
Antigüedad: 14 años, 7 meses
Puntos: 1
Respuesta: Respaldar Base de datos MYSQL..

Hola abimaelrc

te cuento que ejecute tu código pero me error....
ojala me pudieses ayudar :D

Fatal error: Class 'PDO' not found

Saludos!
  #6 (permalink)  
Antiguo 24/11/2010, 10:16
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 11 meses
Puntos: 1517
Respuesta: Respaldar Base de datos MYSQL..

Te recomiendo que actualices a la versión nueva de PHP, puedes escoger entre 5.2.14 o la 5.3.3. La 5.2.14 es la más compatible entre la mayoría de los servidores web, la 5.3.3 es la que se va a asemejando más a la que la versión 6 va a tener.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #7 (permalink)  
Antiguo 24/11/2010, 10:24
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: Respaldar Base de datos MYSQL..

Necesitas descomentar el php_pdo.dll de tus extensiones para tener la clase PDO.

Saludos.
  #8 (permalink)  
Antiguo 26/11/2010, 20:23
Avatar de Flakiss  
Fecha de Ingreso: septiembre-2009
Mensajes: 113
Antigüedad: 14 años, 7 meses
Puntos: 1
Respuesta: Respaldar Base de datos MYSQL..

Nada me funciona...
insisto debe haber un script que me permita respaldar la BD
una query o algo ....

el yodumpeo solo sirve para BD pequeñas... la mia ya va en mas 40 MB


si en sql server existe un procedimiento almacenado, como sera posible que no haya nada para mysql... :(



Ojala me puedan ayudar... quedaria eternamente agradecida...

Gracias a todos por sus aportes, he tratado de usarlos pero tengo limitantes,
no puedo descomentar el php_pdo.dll de tus extensiones para tener la clase PDO.
ya que es un hosting contratado y no tengo acceso a esas alibrerias y menos a modificar el php.ini

tampoco puedo utilizar alguna funcion como system() o exec() tambien esta bloqueado por el servidor del hosting :(

saludos colegas!
  #9 (permalink)  
Antiguo 26/11/2010, 20:42
Avatar de jotaincubus  
Fecha de Ingreso: mayo-2005
Ubicación: Medellin - Colombia
Mensajes: 1.797
Antigüedad: 18 años, 11 meses
Puntos: 394
Respuesta: Respaldar Base de datos MYSQL..

amigo mi BD es bastante grande tambien, yo utilizo el MySql Administrator y es un programa de los desarrolladores de Mysql en ese puedes crear una tarea programada para que genere un backup de tu BD completa cuando quieras.
__________________
Por que existe gente que no agradece después de que se le ha brindado tiempo y ayuda ???
  #10 (permalink)  
Antiguo 26/11/2010, 21:08
Avatar de Flakiss  
Fecha de Ingreso: septiembre-2009
Mensajes: 113
Antigüedad: 14 años, 7 meses
Puntos: 1
Respuesta: Respaldar Base de datos MYSQL..

lamentablemente no puedo usar eso....

la idea es hacer un formulario con el boton respaldar.

luego el usuario se conectara por ftp para descargarla. ya que para eso le cree una cuenta ftp unica para ese sistema.

gracias por tu post :D
  #11 (permalink)  
Antiguo 26/11/2010, 21:18
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 11 meses
Puntos: 1517
Respuesta: Respaldar Base de datos MYSQL..

Si no te hacen el cambio te recomiendo que te mudes de servidor. Para eso les pagas.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #12 (permalink)  
Antiguo 26/11/2010, 21:32
Avatar de jotaincubus  
Fecha de Ingreso: mayo-2005
Ubicación: Medellin - Colombia
Mensajes: 1.797
Antigüedad: 18 años, 11 meses
Puntos: 394
Respuesta: Respaldar Base de datos MYSQL..

mira estas cosas

http://www.forosdelweb.com/f18/backu...o-1-0b-166532/

http://www.programacionweb.net/artic...iculo/?num=614

http://www.programacionweb.net/artic...iculo/?num=564

http://www.forosdelweb.com/f18/backu...on-zip-774288/

Tal vez alguna te sirva
__________________
Por que existe gente que no agradece después de que se le ha brindado tiempo y ayuda ???
  #13 (permalink)  
Antiguo 26/11/2010, 22:11
Avatar de Flakiss  
Fecha de Ingreso: septiembre-2009
Mensajes: 113
Antigüedad: 14 años, 7 meses
Puntos: 1
Respuesta: Respaldar Base de datos MYSQL..

caballeros agradezco enormemente su tiempo y mas que dejen link de informacion se agradece.

probe los ejemplos... pero no me permiten descargar la BD me dael error de capacidad de memoria y algunos ejecutan con la funcion system() y exec()...

tendre que tomar en cuenta el consejo de abimaelrc espero tener suerte con mis proveedores de hosting.

GRacias!
  #14 (permalink)  
Antiguo 28/11/2010, 12:26
Avatar de Flakiss  
Fecha de Ingreso: septiembre-2009
Mensajes: 113
Antigüedad: 14 años, 7 meses
Puntos: 1
Respuesta: Respaldar Base de datos MYSQL..

Amigos

comparto con ustedes el script que me salvo la vida, este me aguanto descargar una base dedatos qe pesa mas entre 130 y 140 MB. Para mi ya esta muy bien con esto!
Gracias a todos los que aportaron con su tiempo y disposicion :D

El script comprime el archivo en .gz es yo lo deje tal cual :D
les deje el link de descarga ... http://www.zoneartcss.com/wp-content...e_db_1.1.1.zip

<?php
include "pags/conectar.php";
/*
Copyright 2005 © [email protected]

Se otorga el permiso para copiar, distribuir, y/o modificar este programa bajo los términos
de la Licencia GNU de Documentación Libre (GFDL, GNU Free Documentation License) versión 2
o posteriores publicadas por la Fundación Software Libre (FSF, Free Software Foundation).

Según esta licencia, cualquier trabajo derivado de esta documentación deberá ser notificado
al autor, aunque la voluntad del mismo es otorgar la máxima libertad posible.

Este programa se distribuye con la intención de ser útil, pero SIN NINGUNA GARANTÍA; incluso
sin la garantía implícita de USABILIDAD o UTILIDAD PARA UN FIN PARTICULAR. Vea la Licencia
Pública General GNU para más detalles.

Soporte y Updaters: http://insidephp.sytes.net
email: [email protected]
*/
//------------------------------------------------------------------------------------------
// Definiciones


// Conexión con la Base de Datos.

$db_server = "localhost";
$db_name = "basededatos";
$db_username = "user";
$db_password = "password";

// Nombre del archivo.

$filename = "respaldo_bd/respaldobd.sql";

?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<HTML>
<HEAD>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
</HEAD>
<body>
<table width="829" height="368" border="1" align="center" cellpadding="0" cellspacing="0" bordercolor="#99CCFF" bgcolor="#FFFFFF">

<tr>

<td width="825" height="366" align="center"><p>&nbsp;</p>

<p><strong><font size="3" face="Verdana">RESPALDO BASE DE DATOS </font></strong><br>

<br>

</p>

<table width="74%" height="87" border="1" align="center">

<tr>

<td height="81" valign="top" bgcolor="#CCCCCC" align="center"><B>

<?


function fetch_table_dump_sql($table, $fp = 0) {
$tabledump = "--\n";
if( !$hay_Zlib )
fwrite($fp, $tabledump);
else
gzwrite($fp, $tabledump);
$tabledump = "-- Table structure for table `$table`\n";
if( !$hay_Zlib )
fwrite($fp, $tabledump);
else
gzwrite($fp, $tabledump);
$tabledump = "--\n\n";
if( !$hay_Zlib )
fwrite($fp, $tabledump);
else
gzwrite($fp, $tabledump);

$tabledump = query_first("SHOW CREATE TABLE $table");
strip_backticks($tabledump['Create Table']);
$tabledump = "DROP TABLE IF EXISTS $table;\n" . $tabledump['Create Table'] . ";\n\n";
if( !$hay_Zlib )
fwrite($fp, $tabledump);
else
gzwrite($fp, $tabledump);

$tabledump = "--\n";
if( !$hay_Zlib )
fwrite($fp, $tabledump);
else
gzwrite($fp, $tabledump);
$tabledump = "-- Dumping data for table `$table`\n";
if( !$hay_Zlib )
fwrite($fp, $tabledump);
else
gzwrite($fp, $tabledump);
$tabledump = "--\n\n";
if( !$hay_Zlib )
fwrite($fp, $tabledump);
else
gzwrite($fp, $tabledump);

$tabledump = "LOCK TABLES $table WRITE;\n";
if( !$hay_Zlib )
fwrite($fp, $tabledump);
else
gzwrite($fp, $tabledump);

$rows = query("SELECT * FROM $table");
$numfields=mysql_num_fields($rows);
while ($row = fetch_array($rows, DBARRAY_NUM)) {
$tabledump = "INSERT INTO $table VALUES(";
$fieldcounter = -1;
$firstfield = 1;
// campos
while (++$fieldcounter < $numfields) {
if( !$firstfield) {
$tabledump .= ', ';
}
else {
$firstfield = 0;
}
if( !isset($row["$fieldcounter"])) {
$tabledump .= 'NULL';
}
else {
$tabledump .= "'" . mysql_escape_string($row["$fieldcounter"]) . "'";
}
}
$tabledump .= ");\n";
if( !$hay_Zlib )
fwrite($fp, $tabledump);
else
gzwrite($fp, $tabledump);
}
free_result($rows);
$tabledump = "UNLOCK TABLES;\n";
if( !$hay_Zlib )
fwrite($fp, $tabledump);
else
gzwrite($fp, $tabledump);
}

function strip_backticks(&$text) {
return $text;
}

function fetch_array($query_id=-1) {
if( $query_id!=-1) {
$query_id=$query_id;
}
$record = mysql_fetch_array($query_id);
return $record;
}

function problemas($msg) {
$errdesc = mysql_error();
$errno = mysql_errno();
die("");
}

function free_result($query_id=-1) {
if( $query_id!=-1) {
$query_id=$query_id;
}
return @mysql_free_result($query_id);
}

function query_first($query_string) {
$res = query($query_string);
$returnarray = fetch_array($res);
free_result($res);
return $returnarray;
}

function query($query_string) {
$query_id = mysql_query($query_string);
if( !$query_id) {
problemas("Invalid SQL: ".$query_string);
}
return $query_id;
}


//------------------------------------------------------------------------------------------
// Main
?>
<?php
@set_time_limit( 0 );
$error = false;
$tablas = 0;

if( !@function_exists( 'gzopen' ) ) {
$hay_Zlib = false;
}
else {
$filename = $filename. ".gz";
$hay_Zlib = true;
}

if( !$error ) {
$dbconnection = @mysql_connect( $db_server, $db_username, $db_password );
if( $dbconnection)
$db = mysql_select_db( $db_name );
if( !$dbconnection || !$db ) {
$error = true;
}
else {
}
}

if( !$error ) {
// MySQL versión
$result = mysql_query( 'SELECT VERSION() AS version' );
if( $result != FALSE && @mysql_num_rows($result) > 0 ) {
$row = mysql_fetch_array($result);
} else {
$result = @mysql_query( 'SHOW VARIABLES LIKE \'version\'' );
if( $result != FALSE && @mysql_num_rows($result) > 0 ){
$row = mysql_fetch_row( $result );
}
}
if(! isset($row) ) {
$row['version'] = '3.21.0';
}
}

if( !$error ) {
$el_path = getenv("REQUEST_URI");
$el_path = substr($el_path, strpos($el_path, "/"), strrpos($el_path, "/"));

$result = mysql_list_tables( $db_name );
if( !$result ) {
$error = true;
}
else {
$t_start = time();

if( !$hay_Zlib )
$filehandle = fopen( $filename, 'w' );
else
$filehandle = gzopen( $filename, 'w6' ); // nivel de compresión

if( !$filehandle ) {
$el_path = getenv("REQUEST_URI");
$el_path = substr($el_path, strpos($el_path, "/"), strrpos($el_path, "/"));
}
else {
$tabledump = "-- Dump de la Base de Datos\n";
if( !$hay_Zlib )
fwrite( $filehandle, $tabledump );
else
gzwrite( $filehandle, $tabledump );
setlocale( LC_TIME,"spanish" );
$tabledump = "-- Fecha: " . strftime( "%A %d %B %Y - %H:%M:%S", time() ) . "\n";
if( !$hay_Zlib )
fwrite( $filehandle, $tabledump );
else
gzwrite( $filehandle, $tabledump );
$tabledump = "--\n";
if( !$hay_Zlib )
fwrite( $filehandle, $tabledump );
else
gzwrite( $filehandle, $tabledump );
$tabledump = "-- Version: " . Str_VERS . ", del " . Str_DATE . ", [email protected]\n";
if( !$hay_Zlib )
fwrite( $filehandle, $tabledump );
else
gzwrite( $filehandle, $tabledump );
$tabledump = "-- Soporte y Updaters: http://insidephp.sytes.net\n";
if( !$hay_Zlib )
fwrite( $filehandle, $tabledump );
else
gzwrite( $filehandle, $tabledump );
$tabledump = "--\n";
if( !$hay_Zlib )
fwrite( $filehandle, $tabledump );
else
gzwrite( $filehandle, $tabledump );
$tabledump = "-- Host: `$db_server` Database: `$db_name`\n";
if( !$hay_Zlib )
fwrite( $filehandle, $tabledump );
else
gzwrite( $filehandle, $tabledump );
$tabledump = "-- ------------------------------------------------------\n";
if( !$hay_Zlib )
fwrite( $filehandle, $tabledump );
else
gzwrite( $filehandle, $tabledump );
$tabledump = "-- Server version ". $row['version'] . "\n\n";
if( !$hay_Zlib )
fwrite( $filehandle, $tabledump );
else
gzwrite( $filehandle, $tabledump );

$result = query( 'SHOW tables' );
while( $currow = fetch_array($result, DBARRAY_NUM) ) {
fetch_table_dump_sql( $currow[0], $filehandle );
fwrite( $filehandle, "\n" );
if( !$hay_Zlib )
fwrite( $filehandle, "\n" );
else
gzwrite( $filehandle, "\n" );
$tablas++;
}
$tabledump = "\n-- Dump de la Base de Datos Completo.";
if( !$hay_Zlib )
fwrite( $filehandle, $tabledump );
else
gzwrite( $filehandle, $tabledump );
if( !$hay_Zlib )
fclose( $filehandle );
else
gzclose( $filehandle );

$t_now = time();
$t_delta = $t_now - $t_start;
if( !$t_delta )
$t_delta = 1;
$t_delta = floor(($t_delta-(floor($t_delta/3600)*3600))/60)." minutos y "
.floor($t_delta-(floor($t_delta/60))*60)." segundos.";
echo( "- <br>Puede descargar directamente: </strong><a href=\"$filename\">Respaldo Base de Datos.</a>" );
$size = filesize($filename);
$size = number_format( $size );
$size = str_replace( ",",".",$size );
}
}
}

if( $dbconnection )
mysql_close();
//------------------------------------------------------------------------------------------
// END*/
?></B></td>
</tr>
</table>
</td>
</tr>
</table>

</body></HTML>
  #15 (permalink)  
Antiguo 07/12/2010, 11:00
 
Fecha de Ingreso: septiembre-2010
Mensajes: 350
Antigüedad: 13 años, 6 meses
Puntos: 9
Respuesta: Respaldar Base de datos MYSQL..

Amigo!!!!

Que buen aporte, me salvaste la vida !!!!!!!!

Bien hecho, bien investigado y BIEN INSISITDO!!
  #16 (permalink)  
Antiguo 07/12/2010, 11:05
 
Fecha de Ingreso: septiembre-2010
Mensajes: 350
Antigüedad: 13 años, 6 meses
Puntos: 9
Respuesta: Respaldar Base de datos MYSQL..

Si necesitas el codigo para que corra automaticamente desde tu servidor:: (CRONJOB) o tarea automatizada...
(para que tu servidor lo haga automaticamente y tu no tengas que hacerlo manualmente, configuras el dia y la hora que quieres que se haga el respaldo)

en codogio coloca esto:

/usr/bin/wget -N -q http://www.tupagina/tu_archivo.php

acoplalo a tus datos
Obviamente, solo pon el php que ejcuta todo sin necesidad de poner la tabla ni nada jeje

Si pones * en mes (sgnifica que en cada mes lo hara)
Pero en fin, ya tu panel te guiara..

Te dejo este aprote, espero te sriba y si ya lo sabias, pues que aprendan los demas, saludos man!!!

PDT: BUEN APORTE!!!!!!!!!!!

Etiquetas: mysql
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 12:53.