База знаний по Open Source
Авторизация
Поиск по базе знаний

Общее описание программы mysqldump

Для работы с дампами баз данных MySql существует клиентская программа mysqldump, изначально написанная Игорем Романенко (Igor Romanenko). Mysqldump входит в состав дистрибутивов всех клонов MySql. Полная документация – http://dev.mysql.com/doc/refman/5.6/en/mysqldump.html, а здесь только краткая шпаргалка по использованию основных функций.

Программа mysqldump позволяет получить дамп содержимого базы данных или совокупности баз для создания резервной копии или пересылки данных на другой SQL сервер (не обязательно MySQL сервер).

Существует три основных способов использования mysqldump: создать набор из одной или более таблиц, набор из одного или более полных баз данных, или весь сервер MySQL, как показано здесь:

$ mysqldump [options] db_name [tbl_name ...]
$ mysqldump [options] -B db_name ...
$ mysqldump [options] -A

Например, сделать дамп базы DATABASE:

$ mysqldump -u USER -hHOST-pPASSWORD DATABASE > /path/to/file/dump.sql

где:

  • -u или -–user=… – имя пользователя
  • -h или –host=… – удаленный хост (для локального хоста можно опустить этот параметр)
  • -p или –password – запросить пароль
  • database – имя базы данных
  • damp.sql – файл для дампа

Залить базу из файла дампа:

$ mysql -u USER -hHOST-pPASSWORD DATABASE < /path/to/file/dump.sql

Основные опции программы mysqldump:

--add-drop-database

Добавляет оператор DROP DATABASE перед каждым оператором CREATE DATABASE.

--add-drop-table

Добавляет оператор DROP TABLE перед каждым оператором CREATE TABLE.

--all-databases, -A

Сохраняет все таблицы из всех баз данных, которые находятся под управлением текущего сервера.

--complete-insert, -c

Используется полная форма оператора INSERT (с именами столбцов).

--create-options

Добавляет дополнительную информацию в операторы CREATE TABLE. Это может быть тип таблицы, начальное значение AUTO_INCREMENT и другие параметры.

--databases, -B

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

--delayed

Использовать команду INSERT DELAYED при вставке строк.

--flush-logs, -F

Записать на диск данные системного журнала из буфера MySQL-сервера перед началом выполнения дампа. Очень рекомендуется использовать.

--no-create-db, -n

Подавляет создание в дампе операторов CREATE DATABASE, которые автоматически добавляются при использовании параметров –databases и –all-databases.

--no-data, -d

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

--port, -P

Номер TCP порта, используемого для подключения к хосту. Если порт нестандартный, то использовать обязательно

--replace

Добавляет ключевое слово REPLACE в оператор INSERT.

--result-file=/path/to/file, -r /path/to/file

Параметр направляет дамп в файл file. Имеет смысл только в Windows. В Linux системах лучше перенаправить результат в файл при помощи последовательностей > и >>.

--socket=/path/to/socket, -S /path/to/socket

Файл сокета для подсоединения к localhost. Это для любителей использовать нестандартные настройки.

--tables

Прерывает действие параметра –databases (-B). Все аргументы, следующие за этим параметром, трактуются как имена таблиц.

--verbose, -v

Расширенный режим вывода. Вывод детальной информации о работе программы.

--version, -V

Вывести информацию о версии программы.

--where='where-condition', -w 'where-condition'

Выполнить дамп только для выбранных записей. Кавычки обязательны!!!

--help

Вывести справочную информацию и выйти из программы.

Примеры использования программы mysqldump

Создание только структуры базы без данных

mysqldump --no-data - u USER -pPASSWORD DATABASE > /path/to/file/schema.sql

Создание дампа только нескольких таблиц

mysqldump -u USER -pPASSWORD DATABASE --tables TABLE1 TABLE2 TABLE3 > /path/to/file/dump_table.sql

Создание дампа и архивирование его

mysqldump -u USER -pPASSWORD DATABASE | gzip > /path/to/outputfile.sql.gz

Создание архивного дампа с указанием его даты

mysqldump -u USER -pPASSWORD DATABASE | gzip > `date +/path/to/outputfile.sql.%Y%m%d.%H%M%S.gz`

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