Mysql
 sql >> Base de données >  >> RDS >> Mysql

Comment sauvegarder des bases de données MySQL à l'aide de tâches cron

Cet article décrit comment configurer une tâche cron qui sauvegarde automatiquement une base de données MySQL dans un fichier à des intervalles spécifiques.

Sauvegardes de bases de données automatisées à l'aide de tâches cron

Il existe deux façons d'exécuter des tâches cron qui sauvegardent une base de données MySQL. Vous pouvez soit inclure les informations de connexion MySQL dans la commande cron job elle-même, soit utiliser un fichier de configuration pour stocker les informations de connexion MySQL.

Méthode n° 1 :Inclure les informations de connexion MySQL dans la commande cron job

Vous pouvez exécuter des sauvegardes planifiées d'une base de données MySQL en créant une tâche cron qui exécute la commande suivante :

/usr/bin/mysqldump --routines -u dbusername -p'dbpassword' dbname > ${HOME}/path/backup.sql

Remplacez dbusername par l'utilisateur de la base de données, dbpassword par le mot de passe de l'utilisateur de la base de données, dbname par la base de données à sauvegarder et path par le chemin où vous souhaitez stocker le fichier de sauvegarde. Cet exemple utilise backup.sql pour le nom de fichier de la sauvegarde, mais vous pouvez utiliser n'importe quel nom de fichier.

  • Les guillemets simples (') autour du mot de passe garantissent que tous les caractères spéciaux sont traités correctement.
  • Lorsque la commande s'exécute avec succès, aucune sortie n'est générée. Toutefois, en cas d'erreur ou de mauvaise configuration, selon la configuration de votre compte, vous pouvez recevoir un message électronique contenant la sortie de la commande. Pour supprimer les messages électroniques lorsque la commande échoue, ajoutez le texte suivant à la fin de la commande cron job :
    2>/dev/null

    Cependant, la plupart des gens souhaitent être avertis lorsqu'une tâche cron échoue.

Pour plus d'informations sur l'utilisation de cPanel pour créer une tâche cron, veuillez consulter cet article.

Méthode n°2 :Utiliser un fichier de configuration pour stocker les informations de connexion MySQL

Vous pouvez également créer un fichier de configuration dans votre répertoire personnel qui stocke les informations de connexion MySQL. En utilisant cette méthode, vous n'avez pas besoin d'inclure les informations de connexion dans vos commandes de travail cron. Pour ce faire, suivez ces étapes :

  1. Créez un fichier nommé .my.cnf dans votre /home/ répertoire des noms d'utilisateur, en remplaçant nom d'utilisateur par le nom d'utilisateur de votre compte. Assurez-vous d'inclure le premier . dans le nom du fichier.
  2. Copiez et collez le texte suivant dans le .my.cnf dossier. Remplacez dbusername par l'utilisateur de la base de données et remplacez dbpassword par le mot de passe de l'utilisateur de la base de données :
    [client]
    user = dbusername
    password = "dbpassword"
    host = localhost
  3. Créez une tâche cron qui exécute la commande suivante. Remplacez dbname par le nom de la base de données à sauvegarder et remplacez path par le chemin pour stocker le fichier de sauvegarde. Cet exemple utilise backup.sql pour le nom de fichier de la sauvegarde, mais vous pouvez utiliser n'importe quel nom de fichier :

    mysqldump --routines dbname > /path/backup.sql

    Lorsque la commande s'exécute avec succès, aucune sortie n'est générée. Toutefois, en cas d'erreur ou de mauvaise configuration, selon la configuration de votre compte, vous pouvez recevoir un message électronique contenant la sortie de la commande. Pour supprimer les messages électroniques lorsque la commande échoue, ajoutez le texte suivant à la fin de la commande cron job :

    2>/dev/null

    Cependant, la plupart des gens souhaitent être avertis lorsqu'une tâche cron échoue.

    Pour plus d'informations sur l'utilisation de cPanel pour créer une tâche cron, veuillez consulter cet article.

Plus d'informations

Pour plus d'informations sur mysqldump programme, veuillez visiter http://dev.mysql.com/doc/refman/5.1/en/mysqldump.html.