Spec-Zone.ru › MySQL 5.7

7.4.1 Экспорт данных в формате SQL с помощью mysqldump

В этом разделе описывается, как использовать mysqldump для создания файлов дампов в формате SQL. Сведения о загрузке таких файлов дампов см. в разделе 7.4.2, «Загрузка резервных копий в формате SQL».

По умолчанию mysqldump записывает информацию в виде SQL-команд в стандартный вывод. Вы можете сохранить вывод в файл:

$> mysqldump [arguments] > file_name

Для экспорта всех баз данных вызовите mysqldump с параметром --all-databases:

$> mysqldump --all-databases > dump.sql

Для экспорта только определённых баз данных укажите их имена в командной строке и используйте параметр --databases:

$> mysqldump --databases db1 db2 db3 > dump.sql

Параметр --databases заставляет все имена в командной строке интерпретироваться как имена баз данных. Без этого параметра mysqldump рассматривает первое имя как имя базы данных, а последующие — как имена таблиц.

С параметрами --all-databases или --databases mysqldump записывает CREATE DATABASE и USE инструкции перед выводом дампа для каждой базы данных. Это гарантирует, что при загрузке файла дампа каждая база данных будет создана, если она не существует, и будет установлена в качестве текущей, чтобы содержимое базы данных загружалось в ту же базу данных, откуда оно было взято. Если вы хотите, чтобы файл дампа принудительно удалял каждую базу данных перед её повторным созданием, используйте также параметр --add-drop-database. В этом случае mysqldump записывает инструкцию DROP DATABASE перед каждой инструкцией CREATE DATABASE.

Для экспорта одной базы данных укажите её имя в командной строке:

$> mysqldump --databases test > dump.sql

В случае с одной базой данных можно опустить параметр --databases:

$> mysqldump test > dump.sql

Разница между двумя предыдущими командами заключается в том, что без параметра --databases вывод дампа не содержит инструкций CREATE DATABASE или USE. Это имеет несколько последствий:

  • При загрузке файла дампа необходимо указать имя текущей базы данных, чтобы сервер знал, в какую базу данных загружать данные.

  • При загрузке можно указать имя базы данных, отличное от исходного, что позволяет загрузить данные в другую базу данных.

  • Если база данных, которую нужно загрузить, не существует, её необходимо создать предварительно.

  • Поскольку вывод не содержит инструкции CREATE DATABASE, параметр --add-drop-database не оказывает влияния. Если вы его используете, то он не генерирует инструкцию DROP DATABASE.

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

$> mysqldump test t1 t3 t7 > dump.sql

© 2025 Oracle
Licensed under the GPLv2 License.
https://docs.oracle.com/cd/E17952_01/mysql-5.7-en/mysqldump-sql-format.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API