Как восстановить одну базу данных из mysqldump, содержащего несколько баз данных? - PullRequest
15 голосов
/ 30 августа 2010

У меня есть дамп mysql с 5 базами данных, и я хотел бы знать, есть ли способ импортировать только одну из них (используя mysqldump или другую)

Предложения приветствуются.

Ответы [ 2 ]

28 голосов
/ 30 августа 2010

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

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

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

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

15 голосов
/ 30 августа 2010

Вы можете передать дамп 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 линиями.

...