Как восстановить только одну базу данных MySQL из коллективной резервной копии
У меня есть запланированная задача mysqldump, которая использует опцию --all-database. Это включает в себя все базы данных в одном файле.
Как я могу сказать MySQL импортировать одну из баз данных, содержащихся в файле дампа?
-М
Спасибо за ответ, ребята. Очень признателен... В итоге я не использовал опцию --all-database. Вот альтернативный скрипт:
#! /bin/bash
date=`date +%A`
for i in /var/lib/mysql/*/; do
dbname=`basename $i`
mysqldump -u <whatever username> --password=<whatever pw>--single-transaction $dbname > <path>/$date/$dbname-backup.sql
done
2 ответа
Решение
Отредактируйте файл дампа, чтобы извлечь операторы, относящиеся к интересующей базе данных, или же загрузите весь дамп на пустой сервер базы данных и выгрузите только интересующую базу данных.
Вот почему люди в курсе делят свои базы данных в отдельные файлы.
Вот еще один вариант.
for i in $(mysql -N -e 'show databases' -uroot -p'password' ); do mysqldump -uroot -p'password' $i | gzip -9c > /root/backups/$i\_$(date +\%Y-\%m-\%d_\%Hh\%M).sql.gz; done