Mysqldump таблицы из разных баз данных? - PullRequest
4 голосов
/ 22 ноября 2011

Я хочу сделать резервную копию двух таблиц: table1 и table2 .

таблица1 из базы данных база данных1 .

таблица2 из базы данных база данных2 .

Есть ли способ сбросить их с помощью одного вызова mysqldump?

Я знаю, что могу сделать:

mysqldump -S unixSocket --skip-comments --default-character-set=utf8 --databases database1 --tables table1 > /tmp/file.sql

Но как вывести две таблицы из разных баз данных?

Ответы [ 5 ]

5 голосов
/ 22 ноября 2011

Используйте mysqldump дважды, но второй раз с перенаправлением в файл как добавление >> /tmp/file.sql.

2 голосов
/ 22 ноября 2011

Синтаксис:

mysqldump --databases db_name1 [db_name2 ...] > my_databases.sql

Проверьте для справки: http://dev.mysql.com/doc/refman/5.1/en/mysqldump.html

Надеюсь, это поможет

1 голос
/ 22 ноября 2011

Существует три основных способа вызова mysqldump :

shell> mysqldump [options] db_name [tbl_name ...]
shell> mysqldump [options] --databases db_name ...
shell> mysqldump [options] --all-databases

Только первая позволяет вам выбрать базу данных и имя таблицы, но не позволяет использовать несколько баз данных. Если вы используете второй или третий вариант, вы будете сбрасывать выбранные базы данных (вторая) или все базы данных (третьи).

Итак, вы можете сделать это, но вам нужно будет создать дамп для целых баз данных.

Как сказал Михал Повага в комментариях, вы также можете сделать это дважды.

первый раз с "> /tmp/file.sql"

второй раз с ">> /tmp/file.sql to append"

0 голосов
/ 09 ноября 2017

Это может быть обходной путь, но вы можете игнорировать другие таблицы, которые вы не хотите делать резервные копии.

Например, в вашем случае:

mysqldump --databases database1 database2 --ignore-table=database1.table2 --ignore-table=database2.table1

Вам необходимо определить каждую таблицу, которую вы НЕ хотите выводить, с каждым оператором --ignore-table.

Удачи!

0 голосов
/ 07 апреля 2014

Для linux / bash, oneliner:

(mysqldump dbname1 --tables table1; mysqldump dbname2 --tables table2) | gzip > dump.sql.gz

...