Бэкапы MySQL

Дмитрий Корнев
11 января, 07:23

Команды для создания и развёртывания бэкапов баз.

Создание бэкапа базы db_name сразу в архив base_backup.sql.gz:

mysqldump -u root db_name | gzip > base_backup.sql.gz

То же самое, только отключаем любой сдвиг времени для данных типа TIMESTAMP, в дампе будут именно те значения времени, которые записаны в базе:

mysqldump -u root --skip-tz-utc db_name | gzip > base_backup.sql.gz

Обратный процесс, распаковка и восстановление бэкапа в базу:

zcat base_backup.sql.gz | mysql -u 'root' db_name

Удаление и создание базы db_name:

mysql -u root -D db_name -e "DROP DATABASE db_name"
mysql -u root -e "CREATE DATABASE db_name"

Чтобы не вводить каждый раз пароль, конечно же имеет смысл создать файл .my.cnf в каталоге пользователя:

[mysql]
user = root
password = пароль

[mysqldump]
user = root
password = пароль

У файла должны быть ограниченные права:

chmod 0600 ~/.my.cnf

Комментарии