```{index} mysql; mysqldump ``` # Резервное копирование БД Выдача прав пользователю для резервного копирования: ```mysql GRANT LOCK TABLES, SELECT ON *.* TO 'backup'@'%' IDENTIFIED BY 'my_secret_password'; ``` Строку можно поместить в `cron` или `sh` скрипт: ```bash 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 ``` То же самое, но чуть удобнее для восприятия: ```bash 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 ``` Алексей: я использовал вот такой вариант для создания дампов вручную: ```bash sudo mysqldump db-name > \ /path/to/backups/PROD_db-name_`date +%F_%H-%M-%S`.sql \ ### MYSQL_DUMP ```