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

Понравилась статья? Поделиться с друзьями:
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: