ansmirnov

MySQL: Выборочный дамп базы данных

Теги: SysAdm, GNU/Linux, MySQL, HowTo

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

mysqldump -uUSER -pPASSWORD DATABASE_NAME TABLE_NAME > TABLE_NAME.sql

заменив USER на пользователя БД, PASSWORD на пароль пользователя USER, DATABASE_NAME на имя БД, TABLE_NAME – на имя экспортируемой таблицы. Дамп таблицы попадет в файл TABLE_NAME.sql

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

Исполняем команду

echo "SHOW TABLES;" | mysql -uUSER -pPASSWORD DATABASE_NAME TABLE_NAME > tables

В файл tables будет помещен список таблиц БД. Его необходимо отредактировать, оставив в нем только те таблицы, которые необходимо экспортировать. После этого необходимо запустить скрипт run.sh, предварительно заменив в нем учетные данные.

После запуска готовый дамп попадет в файл DATABASE_NAME.sql. Его можно импортировать в MySQL командой

mysql -uUSER -pPASSWORD DATABASE_NAME > DATABASE_NAME.sql