How do I restore one database from a mysqldump containing multiple databases?

I have a mysql dump with 5 databases and would like to know if there is a way to import just one of those (using mysqldump or other).

Suggestions appreciated.

15
задан The Pixel Developer 29 August 2010 в 20:21
поделиться

2 ответа

Вы можете передать выгруженный SQL через sed и он извлечет для вас базу данных. Что-то вроде:

cat mysqldumped.sql | \
sed -n -e '/^CREATE DATABASE.*`the_database_you_want`/,/^CREATE DATABASE/ p' | \
sed -e '$d' | \
mysql

Две команды sed:

  1. Печатать только строки, совпадающие между строками CREATE DATABASE (включая обе строки CREATE DATABASE), и
  2. Удалите последнюю CREATE DATABASE строку из вывода, так как мы не хотим, чтобы mysqld создавал вторую базу данных.

Если ваш дамп не содержит строк CREATE DATABASE, вы также можете сопоставить строки USE.

15
ответ дан 1 December 2019 в 00:44
поделиться

Вы можете использовать параметр командной строки mysql --one-database.

mysql> mysql -u root -p --one-database YOURDBNAME < YOURFILE.SQL

Конечно, будьте осторожны, когда делаете это.

Вы также можете использовать разветвитель дампа mysql.

28
ответ дан 1 December 2019 в 00:44
поделиться
Другие вопросы по тегам:

Похожие вопросы: