Импорт одной базы данных из дампа --all-database - PullRequest
61 голосов
/ 26 февраля 2010

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

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

Ответы [ 2 ]

72 голосов
/ 26 февраля 2010

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

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

mysql -D mydatabase -o mydatabase < dump.sql

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

67 голосов
/ 22 сентября 2014

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

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.

Удачи

(Авторы: Даррен Мамерселе - см. его страница )

...