¿Se puede descargar un base de datos vía FTP?

  • Autor Autor Cyber
  • Fecha de inicio Fecha de inicio
C

Cyber

Épsilon
Hola betas!

Bueno, la pregunta es muy sencilla: ¿Se puede descargar un base de datos vía FTP?

Es que no puedo ingresar a mi Cpanel ahora, pero sí mediante FTP, y necesito descargar una base de datos de un foro en SMF que tengo.

Gracias!!!
 
con un script php que te lo realizen , solo se necesitaria algunos datos , ejecutas el php y lo descargas
 
con un script php que te lo realizen , solo se necesitaria algunos datos , ejecutas el php y lo descargas

O sea que primero debo subir el script vía FTP y luego ejecutarlo. conoces algún tuto que me puedas facilitar? Gracias!!!!
 
Porque no pruebas a instalarte phpmyadmin? Permite hacer backups y luego restaurarlos...
 
Haz backup desde administración
 
Estoy de buen humor ya que mañana es mi cumpleaños y tu me ayudaste alguna vez en una duda con una respuesta bien grande : P , :

PHP:
<?php
/* Usuario para la conexion a Mysql. */
$usurio = "tu_usuario";
/* Password para la conexion a Mysql. */
$passwd = "la_clave";
 /* Host para la conexion a Mysql. */
$host = "localhost";
/* Base de Datos que se seleccionará. */
$bd = "tu_base_de_datos";
/* Nombre del fichero que se descargará. */
$nombre = "backup.sql"; // nombre del archivo que queres que genere !!!
/* Determina si la tabla será vaciada (si existe) cuando  restauremos la tabla. */            
$drop = false;
/* 
* Array que contiene las tablas de la base de datos que seran resguardadas.
* Puede especificarse un valor false para resguardar todas las tablas
* de la base de datos especificada en  $bd.
* 
* Ejs.:
* $tablas = false;
*    o
* $tablas = array("tabla1", "tabla2", "tablaetc");
* 
*/
$tablas = false;
/* 
* Tipo de compresion.
* Puede ser "gz", "bz2", o false (sin comprimir)
*/
$compresion = false;

/* Conexion y eso*/
$conexion = mysql_connect($host, $usurio, $passwd)
or die("No se conectar con el servidor MySQL: ".mysql_error());
mysql_select_db($bd, $conexion)
or die("No se pudo seleccionar la Base de Datos: ". mysql_error());


/* Se busca las tablas en la base de datos */
if ( empty($tablas) ) {
    $consulta = "SHOW TABLES FROM $bd;";
    $respuesta = mysql_query($consulta, $conexion)
    or die("No se pudo ejecutar la consulta: ".mysql_error());
    while ($fila = mysql_fetch_array($respuesta, MYSQL_NUM)) {
        $tablas[] = $fila[0];
    }
}


/* Se crea la cabecera del archivo */
$info['dumpversion'] = "1.1b";
$info['fecha'] = date("d-m-Y");
$info['hora'] = date("h:m:s A");
$info['mysqlver'] = mysql_get_server_info();
$info['phpver'] = phpversion();
ob_start();
print_r($tablas);
$representacion = ob_get_contents();
ob_end_clean ();
preg_match_all('/(\[\d+\] => .*)\n/', $representacion, $matches);
$info['tablas'] = implode(";  ", $matches[1]);
$dump = <<<EOT
# +===================================================================
# | YoDumpeo! {$info['dumpversion']}
# | por fran86 <fran86@myrealbox.com>
# |
# | Generado el {$info['fecha']} a las {$info['hora']} por el usurio '$usurio'
# | Servidor: {$_SERVER['HTTP_HOST']}
# | MySQL Version: {$info['mysqlver']}
# | PHP Version: {$info['phpver']}
# | Base de datos: '$bd'
# | Tablas: {$info['tablas']}
# |
# +-------------------------------------------------------------------

EOT;
foreach ($tablas as $tabla) {
    
    $drop_table_query = "";
    $create_table_query = "";
    $insert_into_query = "";
    
    /* Se halla el query que será capaz vaciar la tabla. */
    if ($drop) {
        $drop_table_query = "DROP TABLE IF EXISTS `$tabla`;";
    } else {
        $drop_table_query = "# No especificado.";
    }

    /* Se halla el query que será capaz de recrear la estructura de la tabla. */
    $create_table_query = "";
    $consulta = "SHOW CREATE TABLE $tabla;";
    $respuesta = mysql_query($consulta, $conexion)
    or die("No se pudo ejecutar la consulta: ".mysql_error());
    while ($fila = mysql_fetch_array($respuesta, MYSQL_NUM)) {
            $create_table_query = $fila[1].";";
    }
    
    /* Se halla el query que será capaz de insertar los datos. */
    $insert_into_query = "";
    $consulta = "SELECT * FROM $tabla;";
    $respuesta = mysql_query($consulta, $conexion)
    or die("No se pudo ejecutar la consulta: ".mysql_error());
    while ($fila = mysql_fetch_array($respuesta, MYSQL_ASSOC)) {
            $columnas = array_keys($fila);
            foreach ($columnas as $columna) {
                if ( gettype($fila[$columna]) == "NULL" ) {
                    $values[] = "NULL";
                } else {
                    $values[] = "'".mysql_real_escape_string($fila[$columna])."'";
                }
            }
            $insert_into_query .= "INSERT INTO `$tabla` VALUES (".implode(", ", $values).");\n";
            unset($values);
    }
    
$dump .= <<<EOT

# | Vaciado de tabla '$tabla'
# +------------------------------------->
$drop_table_query


# | Estructura de la tabla '$tabla'
# +------------------------------------->
$create_table_query


# | Carga de datos de la tabla '$tabla'
# +------------------------------------->
$insert_into_query

EOT;
}

/* Envio */
if ( !headers_sent() ) {
    header("Pragma: no-cache");
    header("Expires: 0");
    header("Content-Transfer-Encoding: binary");
    switch ($compresion) {
    case "gz":
        header("Content-Disposition: attachment; filename=$nombre.gz");
        header("Content-type: application/x-gzip");
        echo gzencode($dump, 9);
        break;
    case "bz2": 
        header("Content-Disposition: attachment; filename=$nombre.bz2");
        header("Content-type: application/x-bzip2");
        echo bzcompress($dump, 9);
        break;
    default:
        header("Content-Disposition: attachment; filename=$nombre");
        header("Content-type: application/force-download");
        echo $dump;
    }
} else {
    echo "<b>ATENCION: Probablemente ha ocurrido un error</b><br />\n<pre>\n$dump\n</pre>";
}
?>

solo cambia los datos por los que tengas guardas el fichero con alguno nombre ejemplo file.php lo subes por ftp y lo ejecutas 😛 , un saludo espero que te salga todo bien 😀
 
Estoy de buen humor ya que mañana es mi cumpleaños y tu me ayudaste alguna vez en una duda con una respuesta bien grande : P , :

PHP:
<?php
/* Usuario para la conexion a Mysql. */
$usurio = "tu_usuario";
/* Password para la conexion a Mysql. */
$passwd = "la_clave";
 /* Host para la conexion a Mysql. */
$host = "localhost";
/* Base de Datos que se seleccionará. */
$bd = "tu_base_de_datos";
/* Nombre del fichero que se descargará. */
$nombre = "backup.sql"; // nombre del archivo que queres que genere !!!
/* Determina si la tabla será vaciada (si existe) cuando  restauremos la tabla. */            
$drop = false;
/* 
* Array que contiene las tablas de la base de datos que seran resguardadas.
* Puede especificarse un valor false para resguardar todas las tablas
* de la base de datos especificada en  $bd.
* 
* Ejs.:
* $tablas = false;
*    o
* $tablas = array("tabla1", "tabla2", "tablaetc");
* 
*/
$tablas = false;
/* 
* Tipo de compresion.
* Puede ser "gz", "bz2", o false (sin comprimir)
*/
$compresion = false;

/* Conexion y eso*/
$conexion = mysql_connect($host, $usurio, $passwd)
or die("No se conectar con el servidor MySQL: ".mysql_error());
mysql_select_db($bd, $conexion)
or die("No se pudo seleccionar la Base de Datos: ". mysql_error());


/* Se busca las tablas en la base de datos */
if ( empty($tablas) ) {
    $consulta = "SHOW TABLES FROM $bd;";
    $respuesta = mysql_query($consulta, $conexion)
    or die("No se pudo ejecutar la consulta: ".mysql_error());
    while ($fila = mysql_fetch_array($respuesta, MYSQL_NUM)) {
        $tablas[] = $fila[0];
    }
}


/* Se crea la cabecera del archivo */
$info['dumpversion'] = "1.1b";
$info['fecha'] = date("d-m-Y");
$info['hora'] = date("h:m:s A");
$info['mysqlver'] = mysql_get_server_info();
$info['phpver'] = phpversion();
ob_start();
print_r($tablas);
$representacion = ob_get_contents();
ob_end_clean ();
preg_match_all('/(\[\d+\] => .*)\n/', $representacion, $matches);
$info['tablas'] = implode(";  ", $matches[1]);
$dump = <<<EOT
# +===================================================================
# | YoDumpeo! {$info['dumpversion']}
# | por fran86 <fran86@myrealbox.com>
# |
# | Generado el {$info['fecha']} a las {$info['hora']} por el usurio '$usurio'
# | Servidor: {$_SERVER['HTTP_HOST']}
# | MySQL Version: {$info['mysqlver']}
# | PHP Version: {$info['phpver']}
# | Base de datos: '$bd'
# | Tablas: {$info['tablas']}
# |
# +-------------------------------------------------------------------

EOT;
foreach ($tablas as $tabla) {
    
    $drop_table_query = "";
    $create_table_query = "";
    $insert_into_query = "";
    
    /* Se halla el query que será capaz vaciar la tabla. */
    if ($drop) {
        $drop_table_query = "DROP TABLE IF EXISTS `$tabla`;";
    } else {
        $drop_table_query = "# No especificado.";
    }

    /* Se halla el query que será capaz de recrear la estructura de la tabla. */
    $create_table_query = "";
    $consulta = "SHOW CREATE TABLE $tabla;";
    $respuesta = mysql_query($consulta, $conexion)
    or die("No se pudo ejecutar la consulta: ".mysql_error());
    while ($fila = mysql_fetch_array($respuesta, MYSQL_NUM)) {
            $create_table_query = $fila[1].";";
    }
    
    /* Se halla el query que será capaz de insertar los datos. */
    $insert_into_query = "";
    $consulta = "SELECT * FROM $tabla;";
    $respuesta = mysql_query($consulta, $conexion)
    or die("No se pudo ejecutar la consulta: ".mysql_error());
    while ($fila = mysql_fetch_array($respuesta, MYSQL_ASSOC)) {
            $columnas = array_keys($fila);
            foreach ($columnas as $columna) {
                if ( gettype($fila[$columna]) == "NULL" ) {
                    $values[] = "NULL";
                } else {
                    $values[] = "'".mysql_real_escape_string($fila[$columna])."'";
                }
            }
            $insert_into_query .= "INSERT INTO `$tabla` VALUES (".implode(", ", $values).");\n";
            unset($values);
    }
    
$dump .= <<<EOT

# | Vaciado de tabla '$tabla'
# +------------------------------------->
$drop_table_query


# | Estructura de la tabla '$tabla'
# +------------------------------------->
$create_table_query


# | Carga de datos de la tabla '$tabla'
# +------------------------------------->
$insert_into_query

EOT;
}

/* Envio */
if ( !headers_sent() ) {
    header("Pragma: no-cache");
    header("Expires: 0");
    header("Content-Transfer-Encoding: binary");
    switch ($compresion) {
    case "gz":
        header("Content-Disposition: attachment; filename=$nombre.gz");
        header("Content-type: application/x-gzip");
        echo gzencode($dump, 9);
        break;
    case "bz2": 
        header("Content-Disposition: attachment; filename=$nombre.bz2");
        header("Content-type: application/x-bzip2");
        echo bzcompress($dump, 9);
        break;
    default:
        header("Content-Disposition: attachment; filename=$nombre");
        header("Content-type: application/force-download");
        echo $dump;
    }
} else {
    echo "<b>ATENCION: Probablemente ha ocurrido un error</b><br />\n<pre>\n$dump\n</pre>";
}
?>

solo cambia los datos por los que tengas guardas el fichero con alguno nombre ejemplo file.php lo subes por ftp y lo ejecutas 😛 , un saludo espero que te salga todo bien 😀

Wow!! Sos un genio!!

Que tengas un feliz cumpleaños mañana, y me alegro que mi respuesta te haya sido de utilidad. Muchas gracias por esta ayuda!!

Ahora voy a recolectar todos los datos que necesito cambiar en el código, y voy a ejecutarlo (¿como se ejecuta?) Cuando termine les traigo novedades. Gracias!!!!!!!!!!!!!!!!!!!
 
Administracion->mantenimiento del foro->Base de datos->Copia de seguridad de base de datos->descargar

saludos
 
Así como te dice firehost es la menera de hacerlo en SMF.. aunque a veces no funciona no se por que..

Otra es subir PHPmyadmin e ir a la ruta tusitio.com/phpmyadmin.

Otra es hacerlo como ya te dijeron mas arriba, aunque preguntas como se ejecuta el script.. pues muy sencillo tusitioweb.com/dondesubisteelscript.php

Y la ultima manera si tienes VPS, conectarte por ssh y hacer un mysqldump a tu base de datos y luego descargarlo por FTP

Eso es todo !
 
Claro mi forma no es muy recomendable porque no podemos comprar smf con phpmyadmin, pero siempre he hecho backups asi y siempre me funcionan 🙂 saludos
 
Administracion->mantenimiento del foro->Base de datos->Copia de seguridad de base de datos->descargar

saludos

Muchas gracias por tu respuesta. El problema es que migré a otro hosting, y mientras demoraba el cambia de DNS se registraron nuevos usuarios, en la base de datos del antiguo servidor. Por eso, si ingreso desde SMF estoy accediendo a mi nueva base de datos. Lo que quería era cargar la vieja en el host nuevo. Gracias!!

Así como te dice firehost es la menera de hacerlo en SMF.. aunque a veces no funciona no se por que..

Otra es subir PHPmyadmin e ir a la ruta tusitio.com/phpmyadmin.

Otra es hacerlo como ya te dijeron mas arriba, aunque preguntas como se ejecuta el script.. pues muy sencillo tusitioweb.com/dondesubisteelscript.php

Y la ultima manera si tienes VPS, conectarte por ssh y hacer un mysqldump a tu base de datos y luego descargarlo por FTP

Eso es todo !

Muchas gracias por explicarme como ejecutarlo. Como menciono a firehost el dominio ya apunta al nuevo host, por lo que veo que no podré acceder a la base de datos vieja.

Tengo la triste noticia de informarles que parece que me han pateado de ese host. No porque haya hecho nada malo, todo lo contrario. No se que le sucede a esa gente, sé de otro usuario en el foro que también le cerraron la cuenta, y no le querían dar sus archivos. Por suerte, y conociendo su experiencia, pude sacar todo a tiempo. Aunque se han quedado con una copia de todos mis sitios, y eso es un delito.

Ya hace mucho que vienen dando un pésimo servicio. Por ejemplo, responden tickets con una semana de retraso, o no los responden. Y ante cualquier cosa te patean y listo. Hace unas horas envié un ticket preguntando como acceder a mi cPanel mediante la IP. Debe ser que no sabían o no tenían ganas de contestar, y ahora ya ni el FTP se conecta.

Son las cosas de Internet, al fin y al cabo, del otro lado del monitor hay personas, personas buenas como ustedes que me estan ayudando desinteresadamente, o personas malas que cuando pueden hacerte un daño y perjudicarte, lo hacen.

Cualquier novedad, les comento, pero viendo como opera ésta gente, no creo que haya mas noticias :bawling:

Gracias!! Un abrazo!!
 
Última edición:
Enlace eliminado

ahy deberias ver tu foro antiguo aun funcionando

para acceder cpanel del host antiguo

Enlace eliminado

para acceder ftp antiguo

Enlace eliminado

usuario y password de tu hosting

deberias acceder con tu usuario y password obviamente del anterior hosting salvo que te la hayan borrado ya no tendras acceso :coffee:
 
ahy deberias ver tu foro antiguo aun funcionando

para acceder cpanel del host antiguo



para acceder ftp antiguo



usuario y password de tu hosting

deberias acceder con tu usuario y password obviamente del anterior hosting salvo que te la hayan borrado ya no tendras acceso :coffee:

Wow... sí que sabes mucho amigo... eres un crack... mi base de datos esta RECUPERADA!!!!!!!!

Te agradezco mucho, realmente mucho. Un abrazo!!
 
Atrás
Arriba