Curso de PHP y MySQL 18: Crear Respaldo de MySQL desde PHP

Este es el capitulo 18 del Curso de PHP y MySQL. En este capitulo aprenderemos a realizar respaldos de MySQL en PHP y descargarlos automáticamente como un archivo ZIP.

Requisitos:

  • Servidor Web, PHP y MySQL. Ver Capitulo 1
  • Libreria ZipArchive, en PHP 5.2.0 en adelante esta librería ya viene incluida y activada.
  • Mas información de mysqldump. Ver

Para verificar que tenemos la librería ZipArchive y esta activado creamos en script para mostrar toda la información de PHP:

<?php
 
   phpinfo();
 
?>

Mostrara la información que necesitamos.

Versión de PHP:

Liberia ZipArchive:

Al verificar que tenemos todo lo necesario creamos el script para hacer los respaldos:

<?php
	
	$db_host = 'localhost'; //Host del Servidor MySQL
	$db_name = 'basededatos'; //Nombre de la Base de datos
	$db_user = 'usuario'; //Usuario de MySQL
	$db_pass = 'password'; //Password de Usuario MySQL
	
	$fecha = date("Ymd-His"); //Obtenemos la fecha y hora para identificar el respaldo

	// Construimos el nombre de archivo SQL Ejemplo: mibase_20170101-081120.sql
	$salida_sql = $db_name.'_'.$fecha.'.sql'; 
	
	//Comando para genera respaldo de MySQL, enviamos las variales de conexion y el destino
	$dump = "mysqldump --h$db_host -u$db_user -p$db_pass --opt $db_name > $salida_sql";
	system($dump, $output); //Ejecutamos el comando para respaldo
	
	$zip = new ZipArchive(); //Objeto de Libreria ZipArchive
	
	//Construimos el nombre del archivo ZIP Ejemplo: mibase_20160101-081120.zip
	$salida_zip = $db_name.'_'.$fecha.'.zip';
	
	if($zip->open($salida_zip,ZIPARCHIVE::CREATE)===true) { //Creamos y abrimos el archivo ZIP
		$zip->addFile($salida_sql); //Agregamos el archivo SQL a ZIP
		$zip->close(); //Cerramos el ZIP
		unlink($salida_sql); //Eliminamos el archivo temporal SQL
		header ("Location: $salida_zip"); // Redireccionamos para descargar el Arcivo ZIP
		} else {
		echo 'Error'; //Enviamos el mensaje de error
	}
?>

Y el script genera un respaldo de la base de datos en ZIP y lo descarga:

Nota: Si trabajas el script en linux recuerda asignar los permisos de escritura y ejecución para que pueda generar el respaldo.

Recuerda suscribirte a nuestro canal de YouTube, ¡¡¡Es Gratis!!!
Tutorial en Vídeo:

Enlaces relacionados: