Effectuer une sauvegarde MySQL en utilisant PHP

Il est toujours bon d'effectuer une sauvegarde régulière de votre base de données. Vous pouvez utiliser trois méthodes pour sauvegarder votre base de données MySQL.

  • Utilisation de la commande SQL via PHP.
  • Utilisation du binaire MySQL mysqldump via PHP.
  • Utilisation de l'interface utilisateur de phpMyAdmin.

Utilisation de la commande SQL via PHP

Vous pouvez exécuter la commande SQL SELECT pour effectuer une sauvegarde de n'importe quelle table. Pour effectuer un vidage complet de la base de données, vous devrez écrire une requête distincte pour une table distincte. Chaque tableau sera stocké dans un fichier texte séparé.

Exemple

Essayez l'exemple suivant d'utilisation de la requête SELECT INTO OUTFILE pour créer une sauvegarde de table -

<?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);
?>

Il se peut que vous deviez restaurer des données que vous avez sauvegardées il y a quelque temps. Pour restaurer la sauvegarde, il vous suffit d'exécuter la requête LOAD DATA INFILE comme ceci -

<?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);
?>

Utilisation du binaire MySQL mysqldump via PHP

MySQL fournit un utilitaire mysqldumppour effectuer une sauvegarde de la base de données. En utilisant ce binaire, vous pouvez effectuer un vidage complet de la base de données en une seule commande.

Exemple

Essayez l'exemple suivant pour effectuer le vidage complet de votre base de données -

<?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);
?>

Utilisation de l'interface utilisateur phpMyAdmin

Si tu as phpMyAdmin interface utilisateur disponible alors il est très facile pour vous de faire une sauvegarde de votre base de données.

Pour sauvegarder votre base de données MySQL en utilisant phpMyAdmin, cliquez sur le lien "exporter" sur la page principale de phpMyAdmin. Choisissez la base de données que vous souhaitez sauvegarder, vérifiez les options SQL appropriées et entrez le nom du fichier de sauvegarde.