Encuentra ayuda en el foro

× Lenguaje de programación tipo script para entornos Web, utilizado sobre todo en servidores Linux con el fin de personalizar la información que se envía a los usuarios que acceden a un sitio web.

Mysqldump desde php

Más
6 años 1 semana antes #61 por eduardocalabuigbarbero36
Mysqldump desde php Publicado por eduardocalabuigbarbero36
Buenos días,

Quiero hacer un backup de la base de datos desde una web, es decir, desde php ejecutar un mysqldump, probé a hacerlo con el exec de php pero me dice que el comando mysqldump no existe. No se si será un problema de permisos o que estoy haciendo algo mal. Por favor, confirmarme que se puede ejecutar esta instrucción desde una web y si fuera posible un ejemplo.

También me interesaría el paso contrario, es decir, poder restaurar copias.

Gracias de antemano.

Un saludo,
Eduardo.

Por favor, Identificarse o Crear cuenta para unirse a la conversación.

Más
6 años 1 semana antes - 6 años 1 semana antes #62 por admin
Respuesta de admin sobre el tema Mysqldump desde php
Hola Eduardo,

Acabo de hacer una prueba completa para comprobar lo que comentas y con el siguiente script usando exec y mysqldump si funciona. Quizás tuvieras algún error en la ruta de llamada a mysqldump o el directorio donde se estuviera intentando escribir la copia no fuera escribible.

Primero he creado una base de datos (todos los datos te los mando por privado)
He creado un script php con el siguiente contenido que ejecuta un mysqldump con exec

<?php
define("BACKUP_PATH", "/var/www/vhosts/tudominio.com/httpdocs/backups/");

$server_name   = "localhost";
$username      = "usuario";
$password      = "contraseña";
$database_name = "nombrebd";
$date_string   = date("Ymd");

$cmd = "mysqldump --hex-blob --routines --skip-lock-tables --log-error=mysqldump_error.log -h {$server_name} -u {$username} -p{$password} {$database_name} > " . BACKUP_PATH . "{$date_string}_{$database_name}.sql";

$arr_out = array();
unset($return);

exec($cmd, $arr_out, $return);

if($return !== 0) {
    echo "mysqldump for {$server_name} : {$database_name} failed with a return code of {$return}\n\n";
    echo "Error message was:\n";
    $file = escapeshellarg("mysqldump_error.log");
    $message = `tail -n 1 $file`;
    echo "- $message\n\n";
}
?>

Funciona bien.

Para restaurar tendrías que basarte en el siguiente comando:

mysql -u user -p[root_password] [database_name] < dumpfilename.sql

Ayuda adicional:
dan.cx/2006/12/restore-mysql-dump-using-php
stackoverflow.com/questions/18457722/php...other-empty-database

Saludos.

verkia.com
Hosting y dominios con tecnología avanzada y soporte comprometido.
Última Edición: 6 años 1 semana antes por admin.

Por favor, Identificarse o Crear cuenta para unirse a la conversación.

Gracias a Foro Kunena

Encuentra ayuda

¿Te queda alguna duda?

Hostingato ® 2019. Marca registrada.

Uso de Cookies

Utilizamos cookies propias y de terceros para información estadística y mejorar tu navegación. Para continuar navegando debes aceptar nuestra política de cookies.

Aceptar Rechazar