Общее описание программы 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`