Sauvegarder votre Base de Données

Il y a au moins 3 manières de sauvegarder votre base de données MySQL :

  1. Utilisez phpMyAdmin pour faire la sauvegarde.

  2. Exécuter une requête de sauvegarde de base de données d'après un fichier PHP.

  3. Exécuter des mysqldump() avec la fonction system().

Sauvegarde de base de données avec PHPMyAdmin

Ces instructions sont écrites dans PHPMyAdmin, un véritable outil de gestion de base de données MySQL inclus avec la plupart des services d’hébergement utilisant PHP et MySQL. Votre outil de gestion de base de données peut être différent, mais les étapes devraient être similaires.

Pour les instructions concernant la sauvegarde d'une base de données avec d'autres outils d'administrations PHP :

  • Après vous être identifié, sélectionnez une base de données, puis cliquez sur l'onglet Export.

  1. Dans la partie Export, confirmez que toutes les tables sont sélectionnées, puis sélectionnez le bouton SQL.

  2. Dans les options SQL, sélectionnez:

    • Structure

      • Inclure la valeur courante de l'AUTO_INCREMENT

      • Protéger les noms des tables et des champs par des "`"

    • Donnée

      • Insertions complètes

      • Insertions étendues

      • Type d'exportation : INSERT

  3. Cochez la case se souvenir du modèle.

  4. Choisissez un type de compression de fichiers.

  5. Cliquez sur Exécuter.

  6. Téléchargez le fichier compressé sur votre disque dur.

Après le téléchargement du fichier, veuillez le vérifier avant la modification de la base de données originale.

Faites comme suit :

  1. Sur votre serveur d'hébergement, créez une nouvelle base de données, si vous le pouvez. (Si vous êtes avez le droit à uniquement une base de données par compre, créez une nouvelle base de données localement (sur votre ordinateur) en utilisant WAMP pour Windows, MAMP pour Mac ou LAMP pour Linux.)

  2. Sélectionnez la base de données nouvellement créée.

    • Veuillez noter: PHPMyAdmin ne peut pas importer des fichiers de plus de 2 Mo. Si votre sauvegarde de base de données compressée fait plus de 2 Mo, pour restaurer la base de données, utilisez votre logiciel de compression de données (nous vous recommandons le logiciel libre 7-Zip) pour dézippez la sauvegarde de votre base de données SQL. Vous pouvez la diviser en gros morceaux de 2 Mo en utilisant un programme de partage de texte. Lors de la restauration de la base de données via PHPMyAdmin, importez-la simplement morceau par morceau.

  3. Cliquez sur l'onglet Importer.

  4. Parcourez et sélectionnez la copie de votre sauvegarde de base de données.

  5. Sélectionnez le eu de caractères UTF8.

  6. Sélectionnez SQL en format d'importation.

  7. Cliquez sur Exécuter. Le processus d'importation est terminé.

  8. Dans le Back Office de PrestaShop » Préférences » Base de données, changez le nom de la base de données par le nouveau.

Exécuter une requête de sauvegarde de base de données d'après un fichier PHP.

Ci-dessous, vous trouverez un exemple de l'utilisation d'une requête utilisant SELECT INTO OUTFILE pour la création d'une sauvegarde des tables :

<?phpinclude 'config.php';include 'opendb.php'; $tableName = 'mypet';$backupFile = 'backup/mypet.sql';$query = "SELECT * INTO OUTFILE '$backupFile' FROM $tableName";$result = mysql_query($query); include 'closedb.php';?>

Pour restaurer la sauvegarde, vous avez juste besoin d'exécuter une requête LOAD DATA INFILE query comme :

<?phpinclude 'config.php';include 'opendb.php'; $tableName = 'mypet';$backupFile = 'mypet.sql';$query = "LOAD DATA INFILE 'backupFile' INTO TABLE $tableName";$result = mysql_query($query); include 'closedb.php';?>

C'est une bonne idée de nommer le fichier de sauvegarde @tablename.sql@, car vous reconnaîtrez dans quelle table la sauvegarde a été prise.

Exécuter des mysqldump() avec la fonction system() .

La fonction system() est utilisée pour exécuter des programmes externes. Comme MySQL a déjà un outil intégré pour la création de sauvegarde de base de données (mysqldump), utilisons-le depuis notre script PHP

<?phpinclude 'config.php';include 'opendb.php';;$backupFile = $dbname . date("Y-m-d-H-i-s") . '.gz';$command = "mysqldump --opt -h $dbhost -u $dbuser -p $dbpass $dbname | gzip > $backupFile";system&#40;$command&#41;;include 'closedb.php';?>

Last updated