mysqldump таблиц с определёнными именами

Понадобилось сделать дамп всех таблиц, которые начинаются на “b_iblock*”. Классическим методом mysqldump database b_iblock* > dump.sql не полчится, т.к. в случае использования утилиты mysqldump логика выстраивается немного иная.

Для начала нужно осуществить выборку всех необходимых таблиц в отдельный файл:

mysql -NBe "show tables from database_name like 'b_iblock%';" > b_iblock_tables.txt

Если возникает ошибка ERROR 1046 (3D000) at line 1: No database selected, то очевидно, что надо указать БД:

mysql -NBe "your query;" database_name > b_iblock_tables.txt

В команде используются ключи:

-e – команда для выполнения в БД
-B – убрать обрамление вывода MySQL (рамку вокруг текста)
-N – не указывать имена столбцов в результатах

И уже потом делается дамп на основе полученного файла, содержимое которое выводится в консоль:

mysqldump -u root database `cat b_iblock_tables.txt` | /bin/gzip > b_iblock_tables.sql.gz

Ваш комментарий будет первым

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *