Comment sauvegarder votre base de données MySQL en utilisant PHP
Vous cherchez à faire une sauvegarde de base de données dans vos projets PHP? Il est toujours recommandé de sauvegarder périodiquement votre base de données. Ainsi, les données de votre site seront toujours en sécurité en cas de problème avec votre base de données. Dans cet article, nous vous montrons comment sauvegarder périodiquement la base de données MySQL et la stocker sur votre serveur.
Cet article est écrit pour les projets qui sont intégrés au cœur de PHP et non avec un CMS ou un Framework. Le CMS comme WordPress a plusieurs plugins disponibles comme UpdraftPlus pour sauvegarder la base de données. Dans les sites Web Laravel, l’utilisateur peut utiliser des packages tels que laravel-backup aux mêmes fins.
L’ équipe Spatie a développé le package qui est utile pour effectuer une sauvegarde de base de données dans les projets PHP de base. Ce package prend en charge MySQL, PostgreSQL, SQLite et MongoDB. Nous discuterons de la base de données MySQL dans cet article. Cela étant dit, examinons comment ce package fonctionne pour sauvegarder votre base de données.
Sauvegarde de la base de données MySQL avec PHP
Avant de continuer, assurez-vous que vous disposez de vos informations d’identification de base de données et que Composer est installé sur votre système.
Ensuite, ouvrez le terminal dans le répertoire racine de votre projet et exécutez la commande ci-dessous pour installer le package.
composer require spatie/db-dumper
Lors de l’installation du package, créez un répertoire db-backups
(vous pouvez donner n’importe quel nom) où vous pouvez stocker vos fichiers de sauvegarde SQL. Créez également un fichier backup-database.php
et ajoutez-y le code ci-dessous.
<?php
require_once "vendor/autoload.php";
SpatieDbDumperDatabasesMySql::create()
->setDbName('DB_NAME')
->setUserName('DB_USER_NAME')
->setPassword('DB_PASSWORD')
->dumpToFile('db-backups/'.time().'_dump.sql');
Assurez-vous de remplacer les espaces réservés par les valeurs réelles. Dans le code ci-dessus, nous avons ajouté l’heure actuelle au fichier SQL pour conserver des noms de fichiers distincts. Il videra votre base de données et la stockera dans le fichier SQL donné.
Le package offre plus d’options lors du vidage de la base de données. Par exemple, vous pouvez exclure des tables spécifiques de la sauvegarde en fournissant le tableau d’exclusion de tables comme ci-dessous.
<?php
SpatieDbDumperDatabasesMySql::create()
->setDbName('DB_NAME')
->setUserName('DB_USER_NAME')
->setPassword('DB_PASSWORD')
->excludeTables(['table1', 'table2', 'table3'])
->dumpToFile('db-backups/'.time().'_dump.sql');
Sauvegarder automatiquement la base de données MySQL
Jusqu’à présent, vous disposez d’un fichier PHP qui prend en charge la sauvegarde de votre base de données. La prochaine chose à faire est d’automatiser le processus de sauvegarde afin que vous obteniez vos sauvegardes sans exécuter le script manuellement.
Lorsque vous avez hébergé un site sur le serveur, votre fournisseur d’hébergement vous donne cPanel où vous pouvez voir les options de base et avancées pour la gestion du site Web. Une fonctionnalité qu’ils ont fournie est « Cron Jobs ». Les tâches Cron vous permettent d’exécuter un script spécifique (fichier PHP) à un certain intervalle en arrière-plan. Tout ce que vous avez à faire est de définir un intervalle et de transmettre un chemin de répertoire du fichier PHP. Après cela, votre serveur exécute votre script en arrière-plan aux intervalles spécifiés.
Pour définir un Cron, connectez-vous à votre cPanel et cliquez sur les « Cron Jobs » que vous pouvez trouver dans la section « avancées ».
Sur la page suivante, sous la section « Ajouter une nouvelle tâche Cron », choisissez la liste déroulante « Une fois par jour » pour « Paramètres communs ». Cela signifie que votre script s’exécutera une fois par jour. L’utilisateur peut définir n’importe quel intervalle en fonction des besoins.
Dans la section de commande, passez le chemin du fichier PHP comme suit :
php /home/username/public_html/backup-database.php
Ajustez le chemin du script selon vos configurations d’hébergement et soumettez-le. Après cela, votre serveur commence à exécuter un script quotidiennement à minuit. Et ce script stockera automatiquement votre base de données MySQL dans le répertoire spécifié (par exemple db-backups).
Nous espérons que vous comprendrez comment effectuer une sauvegarde de la base de données MySQL en PHP et automatiser le processus à l’aide de Cron. Nous aimerions entendre vos pensées ou suggestions dans la section commentaires ci-dessous.