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.
<?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.