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:
- 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.
- 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
-
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.