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.