Резервное копирование БД
Резервное копирование БД#
Выдача прав пользователю для резервного копирования:
GRANT LOCK TABLES, SELECT ON *.*
TO 'backup'@'%'
IDENTIFIED BY 'my_secret_password';
Строку можно поместить в cron или sh скрипт:
for db in $(mysql -ubackup -pmy_secret_password -e 'show databases' -s --skip-column-names); do mysqldump $db -ubackup -pmy_secret_Password | gzip > "/srv/backup/mysqldump-$(hostname)-$db-$(date +%Y-%m-%d_%H-%M).gz"; done
То же самое, но чуть удобнее для восприятия:
for db in $(mysql \
-ubackup \
-pmy_secret_password \
-e 'show databases' \
-s --skip-column-names)
do
mysqldump $db \
-ubackup \
-pmy_secret_password | gzip > \
"/srv/backup/mysqldump-$(hostname)-$db-$(date +%Y-%m-%d_%H-%M).gz"
done
Алексей: я использовал вот такой вариант для создания дампов вручную:
sudo mysqldump db-name > \
/path/to/backups/PROD_db-name_`date +%F_%H-%M-%S`.sql \
### MYSQL_DUMP