Как восстановить файл дампа из mysqldump?

Содержание

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

В приведенном выше примере, для создания бекапа используется утилита mysqldump, которая входит в состав mysql. Далее указываются параметры для создания бекапа базы данных, которые разберем подробнее:

  • -u – параметр указывает логин, который будет использоваться для подключения к базе данных. В примере мы используем логин root, который нужно указать в этом параметре без пробела! В результате у нас это выглядит как -uroot
  • -p – параметр указывает что нужно ввести пароль для указанного логина. Мы его оставили пустым, в результате чего пароль нужно будет ввести после нажатия “Enter” при выполнении команды. Тем не менее, можно указать пароль сразу же здесь, как и в параметре логина, без пробела после -p, однако этот способ не является безопасным, так как консоль сохраняет Ваши команды в лог файл и если Вы его регулярно не очищаете, то он может быть просмотрен злоумышленником.
  • your_base – вместо этой строки в примере, вам необходимо указать реальное имя Вашей базы данных, для которой Вы создаете бекап.
  • – оператор который показывает направление действия, т.е. как бы указывает, что вы собираетесь сделать запись из базы в файл.
  • dump_file.sql – это название Вашего файла .slq в которую нужно сохранить Вашу базу данных. Он указывается через пробел после оператора ‘’. Вы можете задать любое другое имя. Например, чтобы в имени система автоматически вставила текущее время, достаточно указать строку вида:

Внимание! Если Вы указываете только имя файла, то он будет сохранен в той же директории, относительно которой Вы выполняете данную команду. Т.е

если Вы видите в строке приглашения ввода команд что-то вроде #, где root@dvs это логин и имя сервера, то файл будет создан в директории /home. Чтобы изменить сохранение файла по другому пути, укажите вместо имени полный путь для сохранения файла, например: /var/www/backup/dump_file.sql.

Во втором примере, вместо оператора ‘‘ используется оператор ‘|‘, который указывает на необходимость выполнения дополнительной команды gzip c параметром ‘-c‘ которая позволяет сразу же запаковать дамп в архив, а только затем сохранить его в файл вида ‘2014-11-15.gz‘, о чем сообщает оператор ‘‘. Параметр –no-data позволяет создать дамп только структуры базы данных без самих данных. В некоторых случаях довольно полезно, когда данные не нужны. Параметры –default-character-set=utf8 и –extended-insert=FALSE. Первый позволяет Вам явно указать кодировку, которая используется этой базой данных, тем самым избежать сохранение базы в неверной кодировке Вместо utf8 можно указать любую другую кодировку, например cp1251 . Второй параметр позволяет указать, что при экспорте для каждой записи необходимо создать отдельную команду INSERT. В некоторых случаях это может потребоваться при частичном восстановлении данных из дампа.

Debug options

The following options print debugging information, encode debugging information in the dump file, or let the dump operation proceed regardless of potential problems.

Continue even if an SQL error occurs during a table dump.

One use for this option is to cause mysqldump to continue executing even when it encounters a view that has become invalid because the definition refers to a table that was dropped. Without —force, mysqldump exits with an error message. With —force, mysqldump prints the error message, but it also writes an SQL comment containing the view definition to the dump output and continues executing.

Log warnings and errors by appending them to the named file. The default is to do no logging.

See the description for the —comments option.

Verbose mode. Print more information about what the program does.

Восстановление базы данных из файла дампа MySQL

Теперь рассмотрим с Вами обратный процесс восстановления базы данных из файла дампа. Данное действие выполняется при помощи программы mysql. Рассмотрим сразу же пример.

От автора: пришел в гости к другу, а у его жены истерика, попугай орет: «Май-эс-кью-эль дамп». Сам друг лежит с головной болью и маниакальным желанием узнать, как происходит в MySQL восстановление из дампа. Чтобы спасти головы остальных «несведущих», нервы их жен и голосовые связки попугаев, рассмотрим эту тему подробнее.

Опасность «All inclusive»

Мой друг, как и многие из новичков, для изучения азов разработки использует программные пакеты «Все включено». Самым распространенным в Рунете является джентльменский набор «Денвер». И своей «комплексностью» (в его состав входит локальный сервер, оболочка для работы с СУБД, сервер MySQL) он доводит этих самых «джентльменов» до умопомрачения.

В состав «Денвера» входят лишь несколько стандартных утилит для работы с MySQL. А так как все мы современные люди, то за недостающей информацией (для понимания сущности чего-либо) отправляемся в интернет. Но в материалах, опубликованных в Сети, ничего не говорится, что для выполнения отдельных наборов команд требуется наличие в стандартном пакете MySQL специализированных утилит. Например, чтобы создать дамп базы данных MySQL, нужна программа MySQLDump.

Поэтому, если для обучения и тестирования кода вы также используете Denwer, и описываемые в этом материале запросы не будут выполняться в командной строке, то перейдите по адресу: D:Webserverusrlocalmysql-5.5in

И посмотрите, какие утилиты для работы с сервером СУБД имеются «на борту» клиентской машины. Повторюсь еще раз, нам сегодня потребуется программка MySQLDump.

Как создать сайт самому?

Какие технологии и знания необходимы сегодня, чтобы создавать сайты самостоятельно? Узнайте на интенсиве!

Работа с MySQLDump

Данная утилита представляет собой обычный «экзешник», который после скачивания следует разместить в папку bin (путь к ней указан в первом разделе материала). Это маленькое приложение позволяет решать «глобальные» задачи – осуществлять в MySQL восстановление из дампа, создавать бэкапы и настраивать параметры резервных копий.

Утилита не имеет собственного интерфейса, поэтому работа с ней происходит через стандартную CMD, входящую в стандартный набор программ Windows (запуск через меню «Пуск»). А теперь пошагово:

Сначала переходим в виртуальный диск (создается после запуска входящего в состав «Денвера» Apache).

Если вы не используете набор для «джентльменов», то это не значит, что вы не джентльмен. Просто вам нужно пропустить этот шаг инструкции.

Затем с помощью команды cd (change directory) указываем путь к папке, где установлен MySQL. В «Денвере» эта директория находится здесь: Z:usrlocalmysql-5.5in

При отдельной инсталляции системы управления БД эта папка располагается: C:Program Files…

Поскольку мы уже находимся на нужном (виртуальном) диске, то нам осталось указать лишь часть пути после команды cd:

Проверим работоспособность приложения, и создадим MySQL дамп базы, которая находится на нашем сервере. Например, БД «wordpress». Для этого будем использовать одноименную с утилитой команду mysqldump. Вот ее синтаксис:

Делаем дамп базы MySQL по SSH

Маленькая шпаргалка для создания дампа вашей базы данных MySQL через SSH или наоборот восстановления из резервной копии. Напрямую связанно с предыдущим материалом Ремонт и восстановление базы MySQL по SSH. Просто вопросы возникают, проще один раз сделать шпаргалочку чем каждый раз отвечать.

Итак. Подключаемся по SSH к нашему серверу. И в командной строке набираем нужную нам команду. А команды будут такими…

Чтобы создать бекап базы MySQL (экспортировать базу данных) набираем

mysqldump -u пользователь_БД -p имя_БД имя_файла

К примеру есть у нас база сайта про коллекционные фантики fantik. Владельцем базы прописан vasia. И сохранить мы хотим в файл fantik_2015.sql. Значит набираем mysqldump -u vasia -p fantik fantik_2015.sql Значок показывает что мы вывод программы направляем в файл с именем fantik_2015.sql. Как видите все просто. Набрали, нажали Enter и на экран вылезет предложение ввести пароль от базы. Вводите и программка начинает работать, если база большая, то это может занять некоторое время.

Можно добавить всякие дополнительные ключи, например сразу прописать пароль и тогда если у вас пароль типа 4Gvx9tRa, то команда примет вот такой вид mysqldump -u vasia -p4Gvx9tRa fantik fantik_2015.sql. Заметьте, что после ключа -p пароль идет сразу, без пробела.

Если требуется положить дамп сразу куда-то в определенное место, то можно еще усложнить команду и прописать в ней желаемый путь:

mysqldump -u vasia -p4Gvx9tRa fantik /home/vasia/data/backup/fantik_2015.sql

Часто размер дампа базы получается весьма и весьма немаленький. Поскольку дамп базы это обычный текстовый файл, то он хорошо архивируется, что позволяет уменьшить его размер в разы, а это сильно облегчает дальнейшее выкачивание. Для архивации можно набрать tar -zcvf имя_архива архивируемая_папка(или файл). В нашем случае это будет

tar -zcvf fantik.tar.gz fantik_2015.sql

Распаковать обратно почти такой же командой

tar -xzvf fantik.tar.gz fantik_2015.sql

  • «c» — значит, что создается новый архив;
  • «x» — распаковывается имеющийся архив;
  • «f» — посредством этого флага задается имя создаваемого архива;
  • «z» — архивация будет происходить посредством архиватора gzip;
  • «v» — в консоль будет выводиться информация о процессе архивации.

При желании можно опять же усложнить нашу исходную команду совместив создание дампа с его архивацией. Тогда строка станет выглядеть примерно так:

mysqldump -u vasia -p4Gvx9tRa fantik | tar -zcvf /home/vasia/data/backup/fantik_2015.tar.gz

Если вам категорически не нравится архиватор tar, то можете воспользоваться более привычным zip. Тогда строка будет выглядеть так:

zip fantik.zip fantik_2015.sql

Для распаковки надо будет набрать

Обратный процесс (импорт базы данных MySQL) производится с помощью вот такой команды:

mysql -u пользователь_БД -p имя_БД файл_дампа_БД

В нашем случае это будет выглядеть так:

mysql -u vasia -p4Gvx9tRa fantik fantik_2015.sql

Как видите ничего особо сложного. Можно заранее подготовить для себя «шпаргалки» с нужной командной строкой и хранить где нибудь в текстовой файлике. Главное чтобы содержимое файлика не попало к злым хакерам, иначе будет очень весело.

You have no rights to post comments

Создание резервных копий

pg_dump параметры имя базы файл, куда сохранить дамп

pg_dump users /tmp/users.dump

Пользователь и пароль

Если резервная копия выполняется не от учетной записи postgres, необходимо добавить опцию -U с указанием пользователя:

pg_dump -U dmosk -W users /tmp/users.dump

* где dmosk — имя учетной записи; опция W потребует ввода пароля.

Сжатие данных

Для экономии дискового пространства или более быстрой передачи по сети можно сжать наш архив:

pg_dump users | gzip users.dump.gz

Скрипт для автоматического резервного копирования

#!/bin/sh PATH=/etc:/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin PGPASSWORD=password export PGPASSWORD pathB=/backup dbUser=dbuser database=db find $pathB \( -name «*-1.*» -o -name «*-?.*» \) -ctime +61 -delete pg_dump -U $dbUser $database | gzip $pathB/pgsql_$(date «+%Y-%m-%d»).sql.gz unset PGPASSWORD

* где password — пароль для подключения к postgresql; /backup — каталог, в котором будут храниться резервные копии; dbuser — имя учетной записи для подключения к БУБД. * данный скрипт сначала удалит все резервные копии, старше 61 дня, но оставит от 15-о числа как длительный архив. После при помощи утилиты pg_dump будет выполнено подключение и резервирование базы db. Пароль экспортируется в системную переменную на момент выполнения задачи.

Для запуска резервного копирования по расписанию, сохраняем скрипт в файл, например, /scripts/postgresql_dump.sh и создаем задание в планировщике:

3 0 * * * /scripts/postgresql_dump.sh

* наш скрипт будет запускаться каждый день в 03:00.

На удаленном сервере

Если сервер баз данных находится на другом сервере, просто добавляем опцию -h:

pg_dump -h 192.168.0.15 users /tmp/users.dump

* необходимо убедиться, что сама СУБД разрешает удаленное подключение. Подробнее читайте инструкцию Как настроить удаленное подключение к PostgreSQL.

Дамп определенной таблицы

Запускается с опцией -t table или —table=table:

pg_dump -t students users /tmp/students.dump

* где students — таблица; users — база данных.

Размещение каждой таблицы в отдельный файл

Также называется резервированием в каталог. Данный способ удобен при больших размерах базы или необходимости восстанавливать отдельные таблицы. Выполняется с ипользованием ключа -d:

pg_dump -d customers /tmp/folder

* где /tmp/folder — путь до каталога, в котором разместяться файлы дампа для каждой таблицы.

Только схемы

Для резервного копирования без данных (только таблицы и их структуры):

pg_dump —schema-only users /tmp/users.schema.dump

Использование pgAdmin

Данный метод хорошо подойдет для компьютеров с Windows и для быстрого создания резервных копий из графического интерфейса.

Запускаем pgAdmin — подключаемся к серверу — кликаем правой кнопкой мыши по базе, для которой хотим сделать дамп — выбираем Резервная копия:

В открывшемся окне выбираем путь для сохранения данных и настраиваемый формат:

При желании, можно изучить дополнительные параметры для резервного копирования:

После нажимаем Резервная копия — ждем окончания процесса и кликаем по Завершено.

Не текстовые форматы дампа

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

Бинарный с компрессией:

pg_dump -Fc users users.bak

pg_dump -Ft users users.tar

pg_dump -Fd users users.dir

Использование pg_basebackup

pg_basebackup позволяет создать резервную копию для кластера PostgreSQL.

pg_basebackup -h node1 -D /backup

* в данном примере создается резервная копия для сервера node1 с сохранением в каталог /backup.

pg_dumpall

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

Утилиту удобно использовать с ключом -g (—globals-only) — выгрузка только глобальных объектов (ролей и табличных пространств).

Для создание резервного копирования со сжатием:

pg_dumpall | gzip cluster.tar.gz

Restrictions

  • mysqldump does not dump the INFORMATION_SCHEMA database by default. To dump INFORMATION_SCHEMA, name it explicitly on the command line and also use the —skip-lock-tables option.
  • mysqldump never dumps the performance_schema database.
  • mysqldump also does not dump the MySQL Cluster ndbinfo information database.
  • Before MySQL 5.6.6, mysqldump does not dump the general_log or slow_query_log tables for dumps of the mysql database. As of 5.6.6, the dump includes statements to recreate those tables so that they are not missing after reloading the dump file. Log table contents are not dumped.

MySQLdump примеры

Ниже предоставлены наиболее используемые примеры использования mysqldump. С помощью которых можно не только делать бэкап, но и добавлять некоторые параметры резервного копирования: сжатие с помощью gzip, добавление даты бэкапа, делать дамп только нескольких таблиц или структуры БД, использовать гибкие настройки. Эти параметры позволяют увеличить скорость выполнения дампа и экономно использовать место дискового пространства.

Создание дампа

-u или —user=… — имя пользователя

-h или —host=… — удаленный хост (для локального хоста можно опустить этот параметр)

-p или —password — запросить пароль

/path/to/file/dump.sql— путь и файл для дампа

Делаем дамп нескольких баз данных, для этого используем атрибут —databases или сокращенно –B, смотрите на примере ниже:

Если вы желаете создать дамп всех баз данных, необходимо использовать параметр –all-databases или –А в сокращенном виде, смотрим пример:

Создаем структуру базы без данных

Для этого необходимо использовать параметр —no-data как показано на примере ниже:

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

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

Создаем дамп с указанием даты в имени файла

Используем дополнительные атрибуты

Как уже упоминалось раньше, эти атрибуты уменьшают итоговый размер файла и ускоряют процесс резервного копирования. А точнее:

-Q оборачивает имена обратными кавычками

-c делает полную вставку, включая имена колонок

-e делает расширенную вставку.

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

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

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

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

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

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

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

Что такое mysqldump?

MySQLdump – это серверное приложение, которое позволяет делать резервное копирование (далее дамп) баз данных и сохранять их в отдельном файле. При этом можно осуществлять гибкие настройки дампа: несколько или все базы данных, архивация в gzip, добавление команд lock, drop и многое другое. Также возможнен обратный импорт резервных копий БД. Осуществлять бэкап базы данных можно с помощью PHP, но это неприемлемо для больших проектов, которые имеют большой вес данных.

Эта программа очень полезна при реализации экспорта и импорта данных с БД. Она может быть стандартно установленной на вашем хостинге (точнее mysql сервере). Но для того, чтобы отточить мастерство работы с mysqldump и научится устанавливать, можно поставить ее на denwer. Что мы сейчас и сделаем.

Синтаксис и базовая команда

Создание дампа выполняется из командной строки Linux или Microsoft. Общий синтаксис:

mysqldump -p база в какой файл сделать дамп

Пример базовой команды для резервирования базы:

mysqldump -v -uroot -p base /tmp/dump.sql

* в данном примере мы создадим резервную копию базы base и поместим его в папку /tmp, назвав сам файл dump.sql. Подключение к базе происходит от пользователя root. Это самый простой пример создания дампа MySQL.

Базовые параметры команды mysqldump:

Параметр Описание
-u Учетная запись, от которой выполняется резервное копирование. Необходимо, чтобы у пользователя были соответствующие права.
-p Пароль учетной записи. Его можно ввести в команде, например -p12345 (для скрипта) или оставить -p (безопаснее).

* полный перечень параметров смотрите в официальном руководстве.

Performance options

The following options are the most relevant for the performance particularly of the restore operations. For large data sets, restore operation (processing the INSERT statements in the dump file) is the most time-consuming part. When it is urgent to restore data quickly, plan and test the performance of this stage in advance. For restore times measured in hours, you might prefer an alternative backup and restore solution, such as MySQL Enterprise Backup for InnoDB-only and mixed-use databases, or mysqlhotcopy for MyISAM-only databases.

Performance is also affected by the transactional options, primarily for the dump operation.

For those nontransactional tables that support the INSERT DELAYED syntax, use that statement rather than regular INSERT statements.

As of MySQL 5.6.6, DELAYED inserts are deprecated, so this option will be removed in a future release.

For each table, surround the INSERT statements with /*!40000 ALTER TABLE tbl_name DISABLE KEYS */; and /*!40000 ALTER TABLE tbl_name ENABLE KEYS */; statements. This makes loading the dump file faster because the indexes are created after all rows are inserted. This option is effective only for non unique indexes of MyISAM tables.

Use multiple-row INSERT syntax that include several VALUES lists. This results in a smaller dump file and speeds up inserts when the file is reloaded.

Write INSERT IGNORE statements rather than INSERT statements.

This option, enabled by default, is shorthand for the combination of —add-drop-table —add-locks —create-options —disable-keys —extended-insert —lock-tables —quick —set-charset. It gives a fast dump operation and produces a dump file that can be reloaded into a MySQL server quickly.

Because the —opt option is enabled by default, you only specify its converse, the —skip-opt to turn off several default settings. See the discussion of mysqldump option groups for information about selectively enabling or disabling a subset of the options affected by —opt.

This option is useful for dumping large tables. It forces mysqldump to retrieve rows for a table from the server a row at a time rather than retrieving the entire row set and buffering it in memory before writing it out.

See the description for the —opt option.

Examples

Back up the entire database db_name to the file backup-file.sql.

Load the backup file backup-file.sql into the database db_name.

This is another way to do the same thing as the previous example (load the backup file into the database).

Populate a remote mysql server’s database db_name with local database db_name.

The above command dumps multiple databases (db_name1, db_name2…) to the single backup file my_databases.sql.

Dumps all databases to the backup file all_databases.sql.

7 ответов

Ссылка на (представленный в MySQL 5.6.3), вероятно, является отвлечением.

Не похоже, что вы имеете дело с выходным файлом mysqldump. Попробуйте утилиту .

Если вы не получили ответ , вы имеете дело с тем, что не является дамп-файлом из —- +: = 4 =: + —-, или вы имеете дело с чем-то, что было сжато (например, с gzip или bzip2), что вам нужно будет uncompress перед тем, как передать его в .

Если вы видите , то у вас определенно есть свой ответ … это сырая база данных SQLite, а не файл дампа MySQL.

Действительно, первые несколько байтов базы данных SQLite:

Обратите внимание, что 16-й октет здесь 0x00, объясняя сообщение в этом случае. Предполагается, что является ложным сигналом тревоги

Пользователи Windows: утилита «файл» является инструментом Unix, но можно найти версию Windows

Создайте свои файлы дампа с помощью этой команды

У меня была эта ошибка один раз, после запуска в Windows PowerShell, например:

То, что я сделал, это изменить его на это (pipe вместо Set-Content):

И проблема исчезла!

Я тоже в PowerShell

Я столкнулся с этой проблемой, когда я использовал PowerShell для вызова mysqldump и для вывода вывода в файл. PowerShell использовал неправильную кодировку при создании файла, и мне была предоставлена ​​такая же ошибка, когда я попытался импортировать файл с помощью mysql .. exported-file.sql

Я обнаружил, что настройка кодировки по умолчанию для UTF8 в сеансе PowerShell разрешила эту проблему.

Мое разрешение — Тестирование PowerShell 5.1:

Пример: как я производил экспорт (упрощенный) :

Примечание. Обнаружено, что это не работает в PowerShell 4.0

В моей среде разработки было запущено 5.1, но prod — 4.0, и мое первоначальное исправление не работает в более старых версиях PowerShell.

Это уже было предложено Ifedi

Вы пытались открыть в блокноте ++ (или другом редакторе) и преобразовать /сохранить нас в UTF-8?

Смотрите: https://stackoverflow.com/questions/7256049 /блокнота-превращающего ANSI-закодированы-файл-к-UTF-8

Другим вариантом может быть использование textwrangle для открытия и сохранения файла в виде UTF-8: http: //www.barebones.com/products/textwrangler/

Кто-то прислал мне сжатый gtar. Даже не был хорошо знаком с gtar, но это еще один формат сжатия.

Однако, я смог разложить его так же, как обычно:

И затем я мог бы сделать импорт:

Решение: Извлеките файл резервной копии, а затем восстановите извлеченный дамп sql.

Резервная копия была взята как файл dump.sql.gz и извлечена с помощью gunzip cmd следующим образом:

И RESTORE извлечен файл dump.sql.

Ссылка: о бинарном и интерактивном режиме MySQL.

Это работает для меня и для всех!

Начало работы: экспорт и импорт БД

Экспорт базы данных

Мы уже установили приложение и научились пользоваться консолем. Тестовый дамп мы уже делали. Теперь сделаем простой дамп базы данных в нужный нам каталог. Для этого я создал ранее используемую БД под именем “test”. Она находится на локальном сервере denwer. Ниже предоставлены пошаговые команды консоля для дампа бд test в нужную папку и нужный файл.

W: cdusr\local\mysql5\bin mysqldump -uroot testD:\test\easydump.sql

На скриншоте ниже показан дамповый файл в папке тест:

Экспорт выполнен успешно. Теперь попробуем импортировать этот файл обратно на наш сервер.

Создание бэкапов и вывод данных из MySQL базы с помощью запросов

О том, как сделать дамп базы данных MySQL — одной и нескольких, а также отдельных их таблиц, мы поговорили. Но иногда на практике бывают случаи, когда нужно экспортировать набор данных, не ограниченный одной таблицей. Либо нужно выбрать лишь некоторые данные из таблицы.

Особенно часто с таким сталкиваются разработчики корпоративных проектов, когда менеджеры просят их предоставить всякие статистические данные. Либо когда нужно сделать бэкап определённой части таблицы для её быстрого восстановления.

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

Mysqldump -u имя_пользователя -p имя_базы_данных имя_таблицы —where «уточняющий_запрос» путь_и_имя_файла_дампа

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

Если нам будет нужно просто получить данные, хранящиеся в одной или нескольких таблицах, то нам потребуется модификация команды, используемой в предыдущем случае при выборке всех данных таблицы, только с некоторыми уточнениями:

Mysql -u имя_пользователя -p -e «SELECT * FROM имя_таблицы WHERE уточняющий_запрос» путь_и_имя_файла

Как вы понимаете, помимо различных уточнений, указываемых в запросе с помощью директивы WHERE , можно использовать и прочие SQL конструкции: JOIN , UNION и т.д.

Статистику собрать получится какую угодно

То же самое действие возможно произвести также при работе в командной строке MySQL с помощью следующей команды:

SELECT * FROM таблица_базы_данных WHERE уточняющий_запрос INTO OUTFILE «путь_и_имя_файла»;

Данная команда как раз и предназначена для создания файлов с результатами выборки. Причём, результаты можно не только экспортировать в файлы, но и записывать в переменные, а также выводимые данные можно форматировать различными способами.

Если перечисленное — ваш случай, то с полным списком параметров и вариантов вызова данной команды вы можете ознакомиться здесь — https://dev.mysql.com/doc/refman/5.7/en/select-into.html

В завершение своего краткого экскурса по mysqldump хочу привести вариант вызова команды со списком параметров для создания оптимизированного дампа базы MySQL и таблиц, восстановление БД и отдельных таблиц из которого будет занимать меньше времени, чем при обычном вызове:

Mysqldump -u имя_пользователя -h хост_или_IP_сервера_MySQL -p —no-autocommit —opt имя_базы_данных путь_и_имя_файла_дампа;

Ради эксперимента я использовал данный вариант для того, чтобы сделать дамп базы MySQL размером в 143 Мб. Последующее восстановление заняло 59 секунд времени против 1 минуты и 3 секунд, когда БД восстанавливалась из дампа, сделанного вызовом mysqldump без специальных параметров.

Согласен, что это мелочь. Но это только в случае данного объёма данных. Если использовать данную методику при создании дампа размером более 1Гб, то разница будет более существенной.


Источник: webstudyo.ru