Crear y restaurar una copia de seguridad de una base de datos MySQL o MariaDB usando PHP

Información válida para: planes de Hosting Linux 

En este artículo, te presentamos dos scripts PHP para hacer copias de seguridad y restaurar tus bases de datos.

Crear una copia de seguridad de la base de datos

El siguiente script PHP crea el llamado volcado SQL. Se trata de un archivo de texto que contiene todos los datos e instrucciones necesarios para restaurar la base de datos en formato SQL.

<?php
//Introduzca aquí la información de su base de datos y el nombre del archivo de copia de seguridad.
$mysqlDatabaseName ='Nombre de la base de datos';
$mysqlUserName ='Nombre de usuario';
$mysqlPassword ='Contraseña';
$mysqlHostName ='dbxxx.hosting-data.io';
$mysqlExportPath ='Su-nombre-de-archivo-deseado.sql';

//Por favor, no haga ningún cambio en los siguientes puntos
//Exportación de la base de datos y salida del status
$command='mysqldump --opt -h' .$mysqlHostName .' -u' .$mysqlUserName .' -p' .$mysqlPassword .' ' .$mysqlDatabaseName .' > ' .$mysqlExportPath;
exec($command,$output,$worked);
switch($worked){
case 0:
echo 'La base de datos <b>' .$mysqlDatabaseName .'</b> se ha almacenado correctamente en la siguiente ruta '.getcwd().'/' .$mysqlExportPath .'</b>';
break;
case 1:
echo 'Se ha producido un error al exportar <b>' .$mysqlDatabaseName .'</b> a '.getcwd().'/' .$mysqlExportPath .'</b>';
break;
case 2:
echo 'Se ha producido un error de exportación, compruebe la siguiente información: <br/><br/><table><tr><td>Nombre de la base de datos MySQL:</td><td><b>' .$mysqlDatabaseName .'</b></td></tr><tr><td>Nombre de usuario MySQL:</td><td><b>' .$mysqlUserName .'</b></td></tr><tr><td>Contraseña MySQL:</td><td><b>NOTSHOWN</b></td></tr><tr><td>Nombre de host MySQL:</td><td><b>' .$mysqlHostName .'</b></td></tr></table>';
break;
}
?>
Cómo hacer una copia de seguridad de tu base de datos usando script PHP:
  • Crea un nuevo archivo de texto en tu PC con un editor y copia el código PHP mostrado arriba en él.
  • Introduce los datos de acceso a tu base de datos en el código y guarda el script con la extensión de archivo .php.
    Mostrar datos de acceso en área IONOS
  • Sube el archivo a tu espacio web en el directorio asociado a tu dominio.
  • Ejecuta el script accediendo a la dirección de Internet en el navegador de Internet, por ejemplo, en el formato http://sudominio.mx/nombredescript.php.
    Nota: si utilizas la opción de configuración safe_mode = on, es necesario desactivar el modo seguro para ejecutar el script. Las bases de datos más antiguas también se pueden llamar dbxx.puretec.de.

Ahora se crea y almacena un volcado SQL en el directorio del script con el nombre especificado en el script. A continuación, puedes archivar el fichero en tu PC.

Restaurar la base de datos

El siguiente script te muestra cómo importar las copias de seguridad existentes como archivos .sql a tu base de datos:

<?php
//Introduzca aquí la información de su base de datos y el nombre del archivo de copia de seguridad.
$mysqlDatabaseName ='Nombre de la base de datos';
$mysqlUserName ='Nombre de usuario';
$mysqlPassword ='Contraseña';
$mysqlHostName ='dbxxx.hosting-data.io';
$mysqlImportFilename ='Nombre-de-archivo-de-backups.sql';

//Por favor, no haga ningún cambio en los siguientes puntos
//Importación de la base de datos y salida del status
$command='mysql -h' .$mysqlHostName .' -u' .$mysqlUserName .' -p' .$mysqlPassword .' ' .$mysqlDatabaseName .' < ' .$mysqlImportFilename;
exec($command,$output,$worked);
switch($worked){
case 0:
echo 'Los datos del archivo <b>' .$mysqlImportFilename .'</b> se han importado correctamente a la base de datos <b>' .$mysqlDatabaseName .'</b>';
break;
case 1:
echo 'Se ha producido un error durante la importación. Por favor, compruebe si el archivo está en la misma carpeta que este script. Compruebe también los siguientes datos de nuevo: <br/><br/><table><tr><td>Nombre de la base de datos MySQL:</td><td><b>' .$mysqlDatabaseName .'</b></td></tr><tr><td>Nombre de usuario MySQL:</td><td><b>' .$mysqlUserName .'</b></td></tr><tr><td>Contraseña MySQL:</td><td><b>NOTSHOWN</b></td></tr><tr><td>Nombre de host MySQL:</td><td><b>' .$mysqlHostName .'</b></td></tr><tr><td>Nombre de archivo de la importación de MySQL:</td><td><b>' .$mysqlImportFilename .'</b></td></tr></table>';
break;
}
?>

Nota: si el tamaño de tu base de datos hace que el script se agote y tu plan de alojamiento web incluye acceso SSH, también puedes restaurar la base de datos a través de SSH.