Тази статия описва как да настроите задание на cron, което автоматично архивира MySQL база данни във файл на определени интервали.
Автоматично архивиране на база данни с помощта на задания на cron
Има два начина за стартиране на задания на cron, които архивират MySQL база данни. Можете или да включите информация за вход в MySQL в самата команда за задание на cron, или можете да използвате конфигурационен файл, за да съхранявате информацията за вход в MySQL.
Метод №1:Включете информация за вход в MySQL в командата за задание на cron
Можете да стартирате планирано архивиране на MySQL база данни, като създадете задание за cron, което изпълнява следната команда:
/usr/bin/mysqldump --routines -u dbusername -p'dbpassword' dbname > ${HOME}/path/backup.sql
Заменете dbusername с потребителя на базата данни, dbpassword с паролата на потребителя на базата данни, dbname с базата данни за архивиране и пътя с пътя, където искате да съхранявате архивния файл. Този пример използва backup.sql за името на файла на резервното копие, но можете да използвате всяко име на файл, което желаете.
- Единичните кавички (') около паролата гарантират, че всички специални знаци се обработват правилно.
- Когато командата се изпълнява успешно, не се генерира изход. Въпреки това, ако има грешка или неправилна конфигурация, в зависимост от конфигурацията на акаунта ви може да получите имейл съобщение, което съдържа изхода на командата. За да потиснете имейл съобщенията, когато командата не успее, добавете следния текст в края на командата cron job:
2>/dev/null
Повечето хора обаче искат да бъдат уведомени, когато задача на cron не успее.
За информация как да използвате cPanel за създаване на работа за cron, моля, вижте тази статия.
Метод №2:Използвайте конфигурационен файл за съхраняване на информация за вход в MySQL
Като алтернатива можете да създадете конфигурационен файл във вашата домашна директория, който съхранява информация за вход в MySQL. Използвайки този метод, не е нужно да включвате информация за влизане в командите на заданието на cron. За да направите това, изпълнете следните стъпки:
- Създайте файл с име .my.cnf във вашия /home/ директория с потребителско име, заменяйки потребителското име с потребителското име на вашия акаунт. Уверете се, че сте включили водещото . в името на файла.
- Копирайте и поставете следния текст в .my.cnf файл. Заменете dbusername с потребителя на базата данни и заменете dbpassword с паролата на потребителя на базата данни:
[client] user = dbusername password = "dbpassword" host = localhost
-
Създайте задание за cron, което изпълнява следната команда. Заменете dbname с името на базата данни за архивиране и заменете пътя с пътя за съхраняване на архивния файл. Този пример използва backup.sql за името на файла на резервното копие, но можете да използвате всяко име на файл, което искате:
mysqldump --routines dbname > /path/backup.sql
Когато командата се изпълнява успешно, не се генерира изход. Въпреки това, ако има грешка или неправилна конфигурация, в зависимост от конфигурацията на акаунта ви може да получите имейл съобщение, което съдържа изхода на командата. За да потиснете имейл съобщения, когато командата не успее, добавете следния текст в края на командата за задание на cron:
2>/dev/null
Повечето хора обаче искат да бъдат уведомени, когато задача на cron не успее.
За информация как да използвате cPanel за създаване на работа за cron, моля, вижте тази статия.
Повече информация
За повече информация относно mysqldump програма, моля, посетете http://dev.mysql.com/doc/refman/5.1/en/mysqldump.html.