sql >> Database >  >> RDS >> Mysql

Een back-up maken van MySQL-databases met behulp van cron-taken

In dit artikel wordt beschreven hoe u een cron-taak instelt die met bepaalde tussenpozen automatisch een back-up van een MySQL-database naar een bestand maakt.

Geautomatiseerde databaseback-ups met cron-jobs

Er zijn twee manieren om cron-taken uit te voeren die een back-up maken van een MySQL-database. U kunt MySQL-inloggegevens opnemen in de cron job-opdracht zelf, of u kunt een configuratiebestand gebruiken om de MySQL-inloggegevens op te slaan.

Methode #1:MySQL-inloggegevens opnemen in de cron job-opdracht

U kunt geplande back-ups van een MySQL-database uitvoeren door een cron-taak te maken die de volgende opdracht uitvoert:

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

Vervang dbusername door de databasegebruiker, dbpassword door het wachtwoord van de databasegebruiker, dbname door de database waarvan een back-up moet worden gemaakt en pad door het pad waar u het back-upbestand wilt opslaan. Dit voorbeeld gebruikt backup.sql voor de bestandsnaam van de back-up, maar u kunt elke gewenste bestandsnaam gebruiken.

  • De enkele aanhalingstekens (') rond het wachtwoord zorgen ervoor dat eventuele speciale tekens correct worden verwerkt.
  • Als de opdracht met succes wordt uitgevoerd, wordt er geen uitvoer gegenereerd. Als er echter een fout of verkeerde configuratie is, kunt u, afhankelijk van uw accountconfiguratie, een e-mailbericht ontvangen dat de uitvoer van de opdracht bevat. Om e-mailberichten te onderdrukken wanneer de opdracht mislukt, voegt u de volgende tekst toe aan het einde van de cron job-opdracht:
    2>/dev/null

    De meeste mensen willen echter een melding krijgen wanneer een cronjob mislukt.

Raadpleeg dit artikel voor informatie over het gebruik van cPanel om een ​​cron-taak te maken.

Methode #2:gebruik een configuratiebestand om MySQL-inloggegevens op te slaan

Als alternatief kunt u een configuratiebestand in uw homedirectory maken waarin MySQL-aanmeldingsgegevens zijn opgeslagen. Met deze methode hoeft u geen inloggegevens op te nemen in uw cron job-opdrachten. Volg hiervoor deze stappen:

  1. Maak een bestand met de naam .my.cnf in je /home/ gebruikersnaam directory, waarbij gebruikersnaam wordt vervangen door de gebruikersnaam van uw account. Zorg ervoor dat u de leidende opneemt. in de bestandsnaam.
  2. Kopieer en plak de volgende tekst in de .my.cnf het dossier. Vervang dbusername door de databasegebruiker en vervang dbpassword door het wachtwoord van de databasegebruiker:
    [client]
    user = dbusername
    password = "dbpassword"
    host = localhost
  3. Maak een cron-taak die de volgende opdracht uitvoert. Vervang dbname door de naam van de database waarvan u een back-up wilt maken en vervang pad door het pad om het back-upbestand op te slaan. Dit voorbeeld gebruikt backup.sql voor de bestandsnaam van de back-up, maar u kunt elke gewenste bestandsnaam gebruiken:

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

    Wanneer de opdracht met succes wordt uitgevoerd, wordt er geen uitvoer gegenereerd. Als er echter een fout of verkeerde configuratie is, kunt u, afhankelijk van uw accountconfiguratie, een e-mailbericht ontvangen dat de uitvoer van de opdracht bevat. Om e-mailberichten te onderdrukken wanneer de opdracht mislukt, voegt u de volgende tekst toe aan het einde van de cron job-opdracht:

    2>/dev/null

    De meeste mensen willen echter een melding krijgen wanneer een cronjob mislukt.

    Raadpleeg dit artikel voor informatie over het gebruik van cPanel om een ​​cronjob te maken.

Meer informatie

Voor meer informatie over de mysqldump programma, gaat u naar http://dev.mysql.com/doc/refman/5.1/en/mysqldump.html.


  1. SQL Group By met een Order By

  2. Kan er een impasse optreden met dezelfde toegangsmethode?

  3. Hoe statement_timestamp() werkt in PostgreSQL

  4. hoe maak je een tabel in orakel