У меня есть запланированная задача mysqldump, в которой используется параметр --all-databases. Сюда входят все базы данных в одном файле.
Как я могу сказать mysql импортировать ОДНУ из баз данных, содержащихся в файле дампа?
-M
Спасибо за ответ, ребята. Очень признателен ... В итоге я не использовал параметр --all-databases. Вот альтернативный сценарий:
#! /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
Отредактируйте файл дампа, чтобы извлечь операторы, относящиеся к интересующей базе данных, или загрузите весь дамп на сервер временной базы данных и выгрузите только интересующую базу данных.
Вот почему знающие люди выгружают свои базы данных в отдельные файлы.
Вот еще одна модификация.
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