Crear y restaurar una copia de seguridad de una base de datos MySQL o MariaDB usando PHP
Utilice la función «Imprimir» al final de la página para crear un PDF.
Packs de Hosting Linux
En este artículo, te presentamos dos scripts PHP para hacer copias de seguridad y restaurar tus bases de datos.
Importante
Para bases de datos de más de 1 gigabyte, las copias de seguridad y restauración deben realizarse mediante el acceso SSH. De lo contrario, el proceso fallará porque se cancelará la ejecución del script debido a la superación del tiempo máximo de espera.
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
//Introduce aquí la información de tu 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 ='Tu-nombre-de-archivo-deseado.sql';
//Por favor, no hagas ningún cambio en los siguientes puntos
//Exportación de la base de datos y salida del estatus
$command='mysqldump --opt -h' .$mysqlHostName .' -u' .$mysqlUserName .' --password="' .$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, comprueba 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 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 los datos de acceso en tu cuenta 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://tudominio.es/nombredescript.php.
Ahora se creará y almacenará un volcado SQL en el directorio del script con el nombre especificado en el script. A continuación, puedes archivar el fichero en tu ordenador.
Restaurar la base de datos
El siguiente script te muestra cómo importar las copias de seguridad existentes como archivo .sql a tu base de datos:
<?php
//Introduce aquí la información de tu 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 hagas ningún cambio en los siguientes puntos
//Importación de la base de datos y salida del estatus
$command='mysql -h' .$mysqlHostName .' -u' .$mysqlUserName .' --password="' .$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, comprueba si el archivo está en la misma carpeta que este script. Comprueba 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;
}
?>