sql >> Databasteknik >  >> RDS >> Mysql

Hur man säkerhetskopierar MySQL-databaser med hjälp av cron-jobb

Den här artikeln beskriver hur man ställer in ett cron-jobb som automatiskt säkerhetskopierar en MySQL-databas till en fil med specifika intervall.

Automatisk säkerhetskopiering av databas med hjälp av cron-jobb

Det finns två sätt att köra cron-jobb som säkerhetskopierar en MySQL-databas. Du kan antingen inkludera MySQL-inloggningsinformation i själva cron-jobbkommandot, eller så kan du använda en konfigurationsfil för att lagra MySQL-inloggningsinformationen.

Metod #1:Inkludera MySQL-inloggningsinformation i cron-jobbkommandot

Du kan köra schemalagda säkerhetskopieringar av en MySQL-databas genom att skapa ett cron-jobb som kör följande kommando:

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

Ersätt dbusername med databasanvändaren, dbpassword med databasanvändarens lösenord, dbname med databasen som ska säkerhetskopieras och sökvägen med sökvägen där du vill lagra säkerhetskopian. Det här exemplet använder backup.sql för säkerhetskopians filnamn, men du kan använda vilket filnamn du vill.

  • De enkla citattecken (') runt lösenordet säkerställer att alla specialtecken behandlas korrekt.
  • När kommandot körs framgångsrikt genereras ingen utdata. Men om det finns ett fel eller felkonfiguration kan du, beroende på din kontokonfiguration, få ett e-postmeddelande som innehåller kommandots utdata. För att undertrycka e-postmeddelanden när kommandot misslyckas, lägg till följande text i slutet av cron job-kommandot:
    2>/dev/null

    De flesta vill dock bli meddelade när ett cron-jobb misslyckas.

För information om hur du använder cPanel för att skapa ett cron-jobb, se den här artikeln.

Metod #2:Använd en konfigurationsfil för att lagra MySQL-inloggningsinformation

Alternativt kan du skapa en konfigurationsfil i din hemkatalog som lagrar MySQL-inloggningsinformation. Med den här metoden behöver du inte inkludera inloggningsinformation i dina cron-jobbkommandon. För att göra detta, följ dessa steg:

  1. Skapa en fil med namnet .my.cnf i ditt /home/ användarnamnskatalogen, ersätter användarnamnet med ditt kontoanvändarnamn. Se till att du inkluderar den ledande . i filnamnet.
  2. Kopiera och klistra in följande text i .my.cnf fil. Ersätt dbusername med databasanvändaren och ersätt dbpassword med databasanvändarens lösenord:
    [client]
    user = dbusername
    password = "dbpassword"
    host = localhost
  3. Skapa ett cron-jobb som kör följande kommando. Ersätt dbname med namnet på databasen som ska säkerhetskopieras och ersätt sökvägen med sökvägen för att lagra säkerhetskopian. Det här exemplet använder backup.sql för säkerhetskopians filnamn, men du kan använda vilket filnamn du vill:

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

    När kommandot körs framgångsrikt genereras ingen utdata. Men om det finns ett fel eller felkonfiguration kan du, beroende på din kontokonfiguration, få ett e-postmeddelande som innehåller kommandots utdata. För att undertrycka e-postmeddelanden när kommandot misslyckas, lägg till följande text i slutet av cron jobb-kommandot:

    2>/dev/null

    De flesta vill dock bli meddelade när ett cron-jobb misslyckas.

    För information om hur du använder cPanel för att skapa ett cron-jobb, se den här artikeln.

Mer information

För mer information om mysqldump programmet, besök http://dev.mysql.com/doc/refman/5.1/en/mysqldump.html.


  1. Säkerhetskopiera/återställ SQLlite-databas till Google Drive-appmappen

  2. Använd PARSENAME() för att returnera en del av ett objektnamn i SQL Server

  3. Hämta RADER som COLUMNS (SQL Server dynamisk PIVOT-fråga)

  4. PostgreSQL accepterar inte kolumnalias i WHERE-satsen