Импорт отдельной базы данных из дампа -all-баз данных
Можно ли импортировать одну базу данных из -all-баз данных mysqldump? Думаю, я могу изменить файл вручную, но задаюсь вопросом, есть ли какие-либо параметры командной строки для этого.
Я перемещаю серверы и имею множество баз данных, большинство из которых в настоящее время мне не нужны или не нужны, но при необходимости нужно иметь возможность восстановить один.
Ответы
Ответ 1
mysqldump
вывод - это всего лишь набор операторов SQL
.
Вы можете предоставить нужную базу данных в командной строке и пропустить команды против других баз данных, используя:
mysql -D mydatabase -o < dump.sql
Это приведет только к выполнению команд, когда используется mydatabase
Ответ 2
Вы можете использовать следующую команду:
mysql -u root -p --one-database destdbname < alldatabases.sql
Где destdbname
- ваша желаемая база данных, которую вы хотите восстановить.
Другим вариантом, который является IMHO намного безопаснее, является извлечение БД из дампа --all-databases
. Пример:
sed -n '/^-- Current Database: `dbname`/,/^-- Current Database: `/p' alldatabases.sql > output.sql
Замените dbname
на нужное имя базы данных. alldatabases.sql
- это имя вашего файла sql-dump. Таким образом, у вас будет отдельная БД в файле, а затем вы можете восстановить ее с помощью простой команды mysql.
Удачи.
(Кредиты идут на: Darren Mothersele - см. его страницу)