Как восстановить только одну базу данных 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
Другие вопросы по тегам