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

Información válida para: packs de Hosting Linux con bases de datos MySQL

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

Crear una copia de seguridad de la base de datos MySQL

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=array(),$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:</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 su base de datos usando script PHP:
  • Cree un nuevo archivo de texto en su PC con un editor y copie el código PHP mostrado arriba en él.
  • Introduzca los datos de acceso a su base de datos MySQL en el código y guarde el script con la extensión de archivo .php.
    Mostrar datos de acceso en el área IONOS
  • Suba el archivo a su espacio web en el directorio asociado a su dominio.
  • Ejecute el script accediendo a la dirección de Internet en el navegador de Internet, por ejemplo, en el formato http://sudominio.es/nombredescript.php.
    Nota: si utiliza 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, puede archivar el fichero en su ordenador.

Restaurar la base de datos MySQL

El siguiente script le muestra cómo importar las copias de seguridad existentes como archivo .sql a su base de datos:

<?php
//Tragen Sie hier Ihre Datenbankinformationen ein und den Namen der Backup-Datei
$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=array(),$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 su base de datos hace que agote el tiempo de ejecución del script y su pack de alojamiento web incluye acceso SSH, también puede restaurar la base de datos a través de SSH.