it-roy-ru.com

Импорт одной базы данных из дампа --all-database

Можно ли импортировать одну базу данных из --all-database mysqldump? Я думаю, что я могу изменить файл вручную, но интересно, есть ли какие-либо параметры командной строки, чтобы сделать это.

Я перемещаю серверы и имею много баз данных, большинство из которых мне сейчас не нужны или не нужны в данный момент, но я хотел бы иметь возможность восстановить один из них, если это необходимо.

61
savageguy

Выходные данные mysqldump - это просто набор операторов SQL.

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

mysql -D mydatabase -o mydatabase < dump.sql

Это будет выполнять команды только когда используется mydatabase

72
Quassnoi

Вы можете использовать следующую команду:

mysql -u root -p --one-database destdbname < alldatabases.sql

Где destdbname - это желаемая база данных, которую вы хотите восстановить.

Другой вариант, который, на мой взгляд, намного безопаснее, - это извлечь БД из дампа --all-databases. Пример:

sed -n '/^-- Current Database: `dbname`/,/^-- Current Database: `/p' alldatabases.sql > output.sql

Замените dbname на нужное имя базы данных. alldatabases.sql - это имя вашего файла sql-dump. Таким образом, у вас будет отдельная БД в файле, а затем вы сможете восстановить ее с помощью простой команды mysql.

Удачи

(Кредиты поступают: Даррен Mothersele - см его страница )

65
Hetzbh