Realice una copia de seguridad de MySQL usando PHP

Siempre es una buena práctica realizar una copia de seguridad periódica de su base de datos. Hay tres formas que puede utilizar para realizar una copia de seguridad de su base de datos MySQL.

  • Usando el comando SQL a través de PHP.
  • Usando MySQL binario mysqldump a través de PHP.
  • Usando la interfaz de usuario de phpMyAdmin.

Usando el comando SQL a través de PHP

Puede ejecutar el comando SQL SELECT para realizar una copia de seguridad de cualquier tabla. Para realizar un volcado completo de la base de datos, deberá escribir una consulta separada para una tabla separada. Cada tabla se almacenará en un archivo de texto separado.

Ejemplo

Pruebe el siguiente ejemplo de uso de la consulta SELECT INTO OUTFILE para crear una copia de seguridad de la tabla:

<?php
   $dbhost = 'localhost:3036';
   $dbuser = 'root';
   $dbpass = 'rootpassword';
   
   $conn = mysql_connect($dbhost, $dbuser, $dbpass);
   
   if(! $conn ) {
      die('Could not connect: ' . mysql_error());
   }
	
   $table_name = "employee";
   $backup_file  = "/tmp/employee.sql";
   $sql = "SELECT * INTO OUTFILE '$backup_file' FROM $table_name";
   
   mysql_select_db('test_db');
   $retval = mysql_query( $sql, $conn );
   
   if(! $retval ) {
      die('Could not take data backup: ' . mysql_error());
   }
   
   echo "Backedup  data successfully\n";
   
   mysql_close($conn);
?>

Puede haber casos en los que necesite restaurar los datos de los que hizo una copia de seguridad hace algún tiempo. Para restaurar la copia de seguridad, solo necesita ejecutar la consulta LOAD DATA INFILE como esta:

<?php
   $dbhost = 'localhost:3036';
   $dbuser = 'root';
   $dbpass = 'rootpassword';
   
   $conn = mysql_connect($dbhost, $dbuser, $dbpass);
   
   if(! $conn ) {
      die('Could not connect: ' . mysql_error());
   }
	
   $table_name = "employee";
   $backup_file  = "/tmp/employee.sql";
   $sql = "LOAD DATA INFILE '$backup_file' INTO TABLE $table_name";
   
   mysql_select_db('test_db');
   $retval = mysql_query( $sql, $conn );
   
   if(! $retval ) {
      die('Could not load data : ' . mysql_error());
   }
   echo "Loaded  data successfully\n";
   
   mysql_close($conn);
?>

Usando MySQL binario mysqldump a través de PHP

MySQL proporciona una utilidad mysqldumppara realizar una copia de seguridad de la base de datos. Con este binario, puede realizar un volcado completo de la base de datos con un solo comando.

Ejemplo

Pruebe el siguiente ejemplo para realizar el volcado completo de su base de datos:

<?php
   $dbhost = 'localhost:3036';
   $dbuser = 'root';
   $dbpass = 'rootpassword';
   
   $backup_file = $dbname . date("Y-m-d-H-i-s") . '.gz';
   $command = "mysqldump --opt -h $dbhost -u $dbuser -p $dbpass ". "test_db | gzip > $backup_file";
   
   system($command);
?>

Usando la interfaz de usuario phpMyAdmin

Si usted tiene phpMyAdmin interfaz de usuario disponible, entonces es muy fácil para usted hacer una copia de seguridad de su base de datos.

Para hacer una copia de seguridad de su base de datos MySQL usando phpMyAdmin, haga clic en el enlace "exportar" en la página principal de phpMyAdmin. Elija la base de datos que desea respaldar, marque las opciones de SQL apropiadas e ingrese el nombre del archivo de respaldo.