Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Jak wykonać kopię zapasową baz danych MySQL za pomocą zadań cron

W tym artykule opisano, jak skonfigurować zadanie cron, które automatycznie tworzy kopię zapasową bazy danych MySQL w pliku w określonych odstępach czasu.

Automatyczne kopie zapasowe bazy danych przy użyciu zadań cron

Istnieją dwa sposoby uruchamiania zadań cron, które tworzą kopię zapasową bazy danych MySQL. Możesz dołączyć informacje logowania do MySQL w samym poleceniu zadania cron lub możesz użyć pliku konfiguracyjnego do przechowywania informacji logowania do MySQL.

Metoda 1:Dołącz dane logowania MySQL do polecenia zadania cron

Możesz uruchomić zaplanowane kopie zapasowe bazy danych MySQL, tworząc zadanie cron, które uruchamia następujące polecenie:

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

Zamień dbusername na użytkownika bazy danych, dbpassword na hasło użytkownika bazy danych, dbname na bazę danych do utworzenia kopii zapasowej, a path na ścieżkę, w której chcesz przechowywać plik kopii zapasowej. W tym przykładzie użyto pliku backup.sql jako nazwę pliku kopii zapasowej, ale możesz użyć dowolnej nazwy pliku.

  • Znaki pojedynczego cudzysłowu (') wokół hasła zapewniają, że wszelkie znaki specjalne są przetwarzane poprawnie.
  • Po pomyślnym wykonaniu polecenia nie są generowane żadne dane wyjściowe. Jeśli jednak wystąpi błąd lub niepoprawna konfiguracja, w zależności od konfiguracji konta możesz otrzymać wiadomość e-mail zawierającą dane wyjściowe polecenia. Aby pominąć wiadomości e-mail, gdy polecenie się nie powiedzie, dodaj następujący tekst na końcu polecenia zadania cron:
    2>/dev/null

    Jednak większość ludzi chce być powiadamiana, gdy zadanie crona nie powiedzie się.

Aby uzyskać informacje o tym, jak używać cPanel do tworzenia zadania cron, zapoznaj się z tym artykułem.

Metoda #2:Użyj pliku konfiguracyjnego do przechowywania danych logowania MySQL

Alternatywnie możesz utworzyć plik konfiguracyjny w swoim katalogu domowym, który przechowuje dane logowania do MySQL. Korzystając z tej metody, nie musisz dołączać informacji logowania do poleceń zadania cron. Aby to zrobić, wykonaj następujące kroki:

  1. Utwórz plik o nazwie .my.cnf w swoim /home/ katalog nazw użytkownika, zastępując nazwę użytkownika nazwą użytkownika konta. Upewnij się, że zawierasz początkowy . w nazwie pliku.
  2. Skopiuj i wklej następujący tekst do .my.cnf plik. Zastąp dbusername nazwą użytkownika bazy danych i zastąp dbpassword hasłem użytkownika bazy danych:
    [client]
    user = dbusername
    password = "dbpassword"
    host = localhost
  3. Utwórz zadanie cron, które uruchamia następujące polecenie. Zastąp dbname nazwą bazy danych, której kopię zapasową chcesz utworzyć, i zastąp ścieżkę ścieżką do przechowywania pliku kopii zapasowej. W tym przykładzie użyto pliku backup.sql jako nazwę pliku kopii zapasowej, ale możesz użyć dowolnej nazwy pliku:

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

    Po pomyślnym uruchomieniu polecenia nie są generowane żadne dane wyjściowe. Jeśli jednak wystąpi błąd lub niepoprawna konfiguracja, w zależności od konfiguracji konta możesz otrzymać wiadomość e-mail zawierającą dane wyjściowe polecenia. Aby pominąć wiadomości e-mail, gdy polecenie się nie powiedzie, dodaj następujący tekst na końcu polecenia zadania cron:

    2>/dev/null

    Jednak większość ludzi chce być powiadamiana, gdy zadanie crona nie powiedzie się.

    Aby uzyskać informacje o tym, jak używać cPanel do tworzenia zadania cron, zapoznaj się z tym artykułem.

Więcej informacji

Więcej informacji o mysqldump programu, odwiedź http://dev.mysql.com/doc/refman/5.1/en/mysqldump.html.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Funkcja agregująca w MySQL - lista (jak LITAGG w Oracle)

  2. Jak uzyskać strukturę bazy danych w MySQL za pomocą zapytania?

  3. #1055 — Wyrażenie listy SELECT nie znajduje się w klauzuli GROUP BY i zawiera kolumnę niezagregowaną, co jest niezgodne z sql_mode=only_full_group_by

  4. CURRENT_TIMESTAMP Przykłady – MySQL

  5. Zapytanie o wycofanie MySQL