Базы данных dump: Что такое дамп базы данных MySQL и как его сделать?

Содержание

Как создать дамп базы данных

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

Сервер с панелью управления ISPmanager

ISPmanager даёт возможность работать с сервером баз данных через графический интерфейс — создавать, удалять базы, настраивать пользователей и привилегии. Сюда же входит возможность скачивания и разворачивания дампов — через саму панель ISPmanager или устанавливаемый в наборе с ней phpMyAdmin.

ISPmanager

Чтобы скачать дамп базы сайта из ISPmanager, откройте раздел Инструменты Базы данных.

В списке баз выберите ту, дамп которой вам нужен, и сверху нажмите «Скачать». Здесь же доступна загрузка своего дампа («Закачать») или восстановление из локальной копии («Локальный дамп»).

phpMyAdmin

Также выполнить экспорт базы можно через панель phpMyAdmin — она устанавливается в сборке ISPmanager.

Откройте раздел Инструменты Базы данных, выберите нужную базу в списке и нажмите «Перейти»

Вы будете автоматически авторизованы в phpMyAdmin под пользователем, которому принадлежит выбранная база данных. Чтобы скачать дамп, перейдите в раздел «Экспорт»:

Здесь можно выбрать метод экспорта: быстрый — с минимумом настроек, или обычный — полностью настраиваемый экспорт, и нажать «Вперёд» — скачается дамп вашей базы данных.

Если вы хотите экспортировать через phpMyAdmin все базы разом, нужно авторизоваться под пользователем root сервера баз данных. Для этого перейдите в панель ISPmanager — Настройки Серверы баз данных, выберите ваш сервер БД, сверху «Изменить»

Здесь вам понадобится пароль пользователя root.

Скопируйте его и перейдите в раздел

Доп. приложенияphpMyAdmin. Для входа в панель используйте логин root и скопированный пароль. Таким образом вы получите полный доступ к серверу баз данных и сможете экспортировать все базы разом. 

Сервер без панели управления

Если ваш сервер настроен вручную, способ создания дампа зависит от того, какие инструменты вы используете для работы. Например, если вы управляете базами данных через тот же phpMyAdmin, тогда можно выполнить экспорт с его помощью по инструкции выше. Если же нет, тогда можно воспользоваться его альтернативой — скриптом Adminer, или сделать дамп по старинке, вручную через утилиту mysqldump.

Adminer

Админер — это php-скрипт, который предоставляет все основные возможности для управления базами данных сайта через графический интерфейс в браузере. 

Чтобы начать работать с ним, достаточно скачать его с официального сайта на сервер и открыть в браузере:

  1. Скачиваем скрипт на сервер в корневую папку нашего сайта:

    wget https://github.com/vrana/adminer/releases/download/v4.7.7/adminer-4.7.7.php

    Ссылку на актуальную версию скрипта можно найти на официальном сайте.

  2. Настраиваем права доступа на скачанный скрипт: 

    chmod 644 adminer-4.7.7.php
  3. Открываем загруженный скрипт в браузере по адресу: 

    https:// [ваш домен или IP-адрес]/adminer-4.7.7.php

После таких нехитрых манипуляций откроется интерфейс для управления базами данных. Для авторизации вам потребуются:

  • имя пользователя базы данных
  • пароль пользователя базы данных
  • название базы данных

Чтобы создать дамп базы, после подключения в меню слева выберите «Экспорт»

Выберите, какие данные хотите включить в дамп.

Чтобы скачать дамп, в строке «Выходные данные» выберите пункт «Сохранить» и нажмите «Экспорт»: дамп будет загружен на ваш компьютер.

Ручной дамп базы

Создать дамп базы вручную можно одной командой: 

mysqldump -u db-username -p db-name > dump.sql

где db-username — имя пользователя базы данных, db-name — название базы данных, dump. sql

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

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

mysqldump -u root -p --databases db-name1 db-name2 db-name3 > dump.sql

А так можно сделать дамп сразу всех баз данных: 

mysqldump -u root -p --all-databases > full-dump.sql

После создания дампа останется только скачать его, подключившись к серверу, например, по sFTP. Или можно сделать это быстрее, через консоль — с помощью scp. Эта утилита позволяет копировать файлы между хостами. Для доступа к удалённому хосту потребуются его IP-адрес, имя пользователя и пароль.

Синтаксис команды прост: 

scp -pr [откуда и что копировать] [куда копировать и как сохранить]

Опция -r отвечает за рекурсивное копирование директорий. Пригодится, если нужно передать папку с файлами и подкаталогами.

Параметр -p позволяет при передаче сохранить время последнего изменения файла, время последнего чтения файла и его атрибуты.

Если нужно передать файл dump.sql с текущего сервера на удалённый, команда примет такой вид: 

scp /root/dump.sql [email protected]:/root

Здесь /root/dump.sql — путь к передаваемому файлу на текущем сервере. [email protected]:/root — данные для подключения к удалённому хосту (пользователь root, сервер 188.120.228.62) и путь, куда нужно сохранить передаваемый файл (/root).

Если файл с сервера нужно скопировать не на сервер, а на ваш компьютер, запускать утилиту лучше с него (например, на Windows 10 — через

Windows PowerShell). Вот так можно скопировать файл dump.sql, хранящийся в папке /root на сервере 188.120.228.62, на компьютер с ОС Windows в домашнюю папку вашего пользователя (. ):

scp -p [email protected]:/root/dump.sql .

С помощью следующей команды можно добиться обратного результата — дамп dump-dump.sql будет загружен с вашего компьютера на сервер 188.120.228.62 в папку /root:

scp -p ./dump-dump.sql [email protected]:/root

Дамп базы данных MySQL — Как сделать и перенести БД — Wiki HOSTiQ.ua

Данная статья может оказаться полезной, если у вас есть веб-сайт, который использует систему управления контентом (Joomla, WordPress, OpenCart и т.д.), и вы решили перенести его на другой сервер. Для этого требуется не только перенос файлов сайта, но и перенос базы данных. Перед тем, как приступить к переносу веб-сайта, необходимо подобрать хороший хостинг для сайта и заказать его, чтобы получить доступ к новому хостинговому аккаунту. Мы, например, предлагаем отдельный хостинг WordPress, Joomla и PrestaShop. Если вы хотите перенести сайт на новое имя и вам нужно купить домен, не торопитесь.

Наш план виртуального хостинга S4 предоставит вам домен и Comodo сертификат SSL в подарок. Если для вашего сайта недостаточно виртуального хостинга, вы всегда можете заказать VPS или выделенный сервер.

Стабильный хостинг с поддержкой 24/7

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

Посмотреть тарифы

Создание дампа базы данных в PhpMyAdmin

Для переноса базы данных необходимо сначала создать ее дамп, то есть разместить содержимое в отдельный sql-файл. Делается это в меню phpMyAdmin на хостинге, откуда вы переносите сайт. Зайдите в phpMyAdmin, выделите слева базу данных, которую необходимо перенести, и нажмите на кнопку «Экспорт» в верхнем меню.

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

Создание пользователя БД MySQL

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

Зайдите в cPanel и найдите раздел «Базы данных», выберите «Мастер баз данных MySQL».

Откроется новое окно. На шаге 1 введите имя базы. Обратите внимание на то, что имя БД всегда будет с префиксом, первая половина имени будет содержать в себе имя cPanel аккаунта.

После ввода имени нажмите на кнопку «Следующий шаг».

На шаге 2 необходимо создать пользователя MySQL к базе и задать пароль для него. После ввода всех данных нажмите кнопку «Создать пользователя».

При настройке привилегий созданного пользователя выберите опцию «ВСЕ ПРАВА» и переходите к следующему шагу.

Если в предыдущих шагах все было сделано правильно, мастер баз данных оповестит вас об успешном завершении создания БД на хостинге.

Созданную БД вы теперь сможете найти в списке доступных баз MySQL в одноименном меню контрольной панели.

Восстановление БД из дампа в PhpMyAdmin

Теперь для восстановления базы данных MySQL импортируем в созданную базу содержимое сохраненного со старого хостинга файла с расширением .sql. Для этого на главной странице cPanel выберите пункт меню “phpMyAdmin” в том же разделе “Базы данных”. В открывшемся окне в меню слева выберите только что созданную БД и нажмите на вкладку «Импорт» в верхнем меню.

Нажмите кнопку «Выберите файл», в диалоговом окне выберите ранее сохраненный sql-файл и загрузите его на хостинг. Убедитесь, что выбран тип кодировки utf-8. После нажатия кнопки ОК дождитесь сообщения об успешном импорте базы данных.

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

Читайте также:

Помогла ли эта статья решить вашу проблему?

Ваш ответ поможет улучшить статьи в будущем.

Правильный экспорт MySQL (Dump базы данных)

  1. Что такое MySQL
  2. Как создать базу данных?
  3. Настройка и управление
  4. Логин\пароль: где узнать и как восстановить?
  5. Экспорт MySQL (Dump базы данных)
  6. Импорт MySQL
  7. Ограничения БД
  8. Ошибки

Что такое дамп базы данных?

Это файл, в который сохраняется копия базы данных MySQL. Данные из этого дампа можно использовать для заполнения пустой БД (смена хостинга или перенос сайта с Денвера) или изменения существующей базы данных (используется для бэкапов). Чаще всего этот файл имеет расширение .sql.

Как экспортировать базу данных MySQL?

Обычно экспорт базы данных (создание дампа) производится с помощью интерфейса phpMyadmin. И далее мы подробно разберем несколько шагов:

  1. В панели управления хостингом, находим phpMyadmin. Чаще всего он находится в разделе «Базы данных» или подобном.
  2. Слева в углу выберите свою базу данных (ту, которую вы собираетесь экспортировать на компьютер, чтобы потом перенести на другой хостинг).
  3. Жмем вкладку “Экспорт”.
  4. Возможно вас попросят выбрать способ экспорта “Обычный” (много настроек) или “Быстрый” (мало настроек). Не имеет значения какой выбирать, главное изменить только те настройки, которые мы описываем ниже.
  5. Нужно выбрать все таблицы, нажав на кнопку “Выделить все”.
  6. Отметить галочкой “Сохранить как файл”, “Сохранить вывод в файл” или что-то подобное.
  7. На всякий случай, запоминаем кодировку, но не трогаем ее.
  8. Жмем “Ок” и сохраняем файл с БД себе на компьютер. Обычно сохраняемый файл имеет расширение .sql.

Экспорт базы данных MySQL через SSH

Есть еще один способ экспорта БД — с помощью протокола SSH. Для этого используется специальная SSH-команда:

mysqldump —user=DBUSER —password=USERPASSWORD DBNAME > DUMPFILENAME.sql

или

mysqldump -uDBUSER -pUSERPASSWORD DBNAME > DUMPFILENAME. sql

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

DBUSER — имя пользователя базы данных, например uhosting_databaseuser;

USERPASSWORD — пароль пользователя БД, например Rjkweuik12;

DBNAME — имя базы данных, из которой будет производится экспорт, например uhosting_databasename;

DUMPFILENAME — имя dump-файла, в который будет производится экспорт. Здесь можно указать путь куда будет сохранен дамп-файл, но лучше этого не делать, и просто забрать файл с сервера хостинг-провайдера.

Дамп БД MySQL | Инструмент для резервного копирования MySQL

Резервное копирование БД MySQL с помощью графического интерфейса

Следующий пример показывает выполнение резервного копирования БД MySQL с помощью графического интерфейса.

1. Щелкните правой кнопкой мыши в окне Проводник и выберите опцию Резервная копияСоздать резервную копию БД. Откроется окно Мастер резервирования БД

2. На вкладке «Общие» укажите соединение, базу данных для создания резервной копии, а также название итогового файла. Щелкните Далее.

3. Выберите содержимое для создания резервной копии. Щелкните Далее.

4. Укажите подробные опции создания резервной копии MySQL. Щелкните Далее.

5. Настройте опции Обработка ошибок и Лог-файла. Щелкните Выполнить для создания резервной копии MySQL.

6. Щелкните Выполнить.

Как запланировать создание резервной копии MySQL?

Иногда вам может понадобиться настроить автоматическое Создание резервных копий БД MySQL. Для этого вы должны, прежде всего, создать файл проекта, содержащий настройки резервного копирования, с помощью мастера резервного копирования MySQL. Создав файл проекта, вы должны будете запланировать задачу Windows, которая будет выполняться в определенное время или при выполнении определенного условия.

1. Выполните шаги 1-5 выше. Щелкните Сохранить проект.

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

3. Выберите ДействиеСоздать простую задачу в верхнем меню.

4. Укажите имя для новой задачи. Щелкните Далее.

5. Выберите одну из опций для запуска задачи создания резервной копии MySQL. Щелкните Далее.

6. Выберите время и частоты для запуска задачи. Щелкните Далее.

7. Выберите Запустить программу и щелкните Далее.

8. Укажите путь к файлу dbforgemysql.com в поле Программа или сценарий. (По умолчанию задан путь «C:\Program Files\Devart\dbForge Studio for MySQL\dbforgemysql.com»)

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

/backup /connection:»User Id=root;Host=db;Port=3309;Database=sakila;Character Set=utf8;» /projectfile:»C:\Users\Documents\dbForge Studio for MySQL\Export\sakila.backup»

9. Проверьте все настройки еще раз и, если изменения не требуются, щелкните Завершить. В противном случае, щелкните Назад и внесите необходимые изменения.

Наш Мастер резервного копирования MySQL поможет вам избежать потери данных. Всего за несколько простых шагов вы сможете создавать копии баз данных целиком или только избранных объектов, настолько же быстро и просто восстанавливая их в дальнейшем.

PgSQL-как импортировать дамп базы данных только тогда, когда база данных полностью пуста?



Прецедент на самом деле автоматизировать это с ansible . Я хочу импортировать дамп базы данных только тогда, когда база данных полностью пуста (нет таблиц внутри). Конечно, всегда есть способ выполнить оператор sql, но это последнее средство, я считаю, что для этого должно быть более элегантное решение.

pg_restore руководство не предоставляет эту опцию, насколько я вижу.

Вот как я планирую сделать это с ansible:

  - name: db_restore | Receive latest DB backup
    shell: s3cmd --skip-existing get `s3cmd ls s3://{{ aws_bucket }}/ | grep sentry | tail -1 | awk '{print $4}'` sql. latest.tgz
    args:
        chdir: /root/
        creates: sql.latest.tgz

  - name: db_restore | Check if file exists
    stat: path=/root/sql.latest.tgz
    register: sql_latest

  - name: db_restore | Restore latest DB backup if backup file found
    shell: PGPASSWORD={{ dbpassword }} tar -xzOf /root/sentry*.tgz db.sql | psql -U{{ dbuser }} -h{{ pgsql_server }} --set ON_ERROR_STOP=on {{ dbname }}
    when: sql_latest.stat.exists
    ignore_errors: True

В идеале это должно проверить, если DB пустой. Для этой цели не существует модуля ansible. Google тоже молчит.. Текущее решение на самом деле также работает, это даст ошибку, когда импорт не удастся, и я могу просто игнорировать ошибку, но немного больно видеть ложную тревогу.

postgresql ansible database-backups
Поделиться Источник holms     30 марта 2015 в 02:53

3 ответа


  • mysql-как импортировать дамп базы данных с числовыми именами таблиц

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

  • Получение неопределенного значения, когда база данных пуста

    У меня возникла проблема с моим мобильным приложением, и я не знаю, как ее решить. когда я нажимаю кнопку, которая получает данные из базы данных, я анализирую их в json, и когда я хочу использовать их в своем приложении, я получаю неопределенное. Мотыгой я могу сделать так, чтобы мне не досталось…



5

На самом деле нет такой вещи, как «empty» как таковой; он обычно имеет встроенные типы, язык PL/PgSQL по умолчанию и т. д., Даже если вы создаете из template0 . Если вы создадите из другого шаблона, там может быть намного больше.

PostgreSQL не сохраняет запись первой записи без шаблона в DB, поэтому вы также не можете сказать «changed since created».

Вот почему нет опции --if-empty для pg_restore . Это действительно не имеет смысла.

Безусловно, лучший вариант-выполнить psql для запроса information_schema и определить, есть ли какие-либо таблицы в схеме public . Или, что еще лучше, запрос на наличие определенных таблиц и типов, которые вы знаете, будет создан дампом.

напр.

psql -qAt mydbname -c "select 1 from information_schema.tables where table_schema = 'public' and table_name = 'testtable';"

Затем вы можете проверить нулевые / ненулевые строки, возвращенные в stdout. Или оберните его в SELECT EXISTS(...) , чтобы получить логическое значение из psql . Или используйте блок DO , который ERROR s, Если таблица существует, если вам нужен нулевой / ненулевой статус выхода из psql .

Поделиться Craig Ringer     30 марта 2015 в 04:48



3

Чтобы считать базу данных пустой, мы должны знать, что там ничего не было добавлено с момента создания. Поскольку postgres не отслеживает это (как уже упоминалось @Craig Ringer), я рекомендую другой подход в отношении ansible.

Итак, просто используйте механизм обработчика, например:

- name: Create zabbbix postgres DB
  postgresql_db: name="{{zabbix_db_name}}"
  notify:
    - Init zabbix database

Поделиться Hubbitus     21 июля 2015 в 15:12



2

Поскольку трудно сказать, является ли база данных «empty», как объясняют другие, гораздо проще проверить, существует ли база данных, а затем создать и восстановить в один шаг. Я делаю это вот так:

- name: Check my_database database already exists
  become: yes
  become_user: postgres
  shell: psql -l | grep my_database
  ignore_errors: true
  register: my_database_db_existence
- debug: var=my_database_db_existence

- name: Copy backup of the my-database database
  shell: your-s3-command here
  when: my_database_db_existence | failed

- name: Restore my_database database on first run
  become_user: postgres
  shell: createdb -O my_user my_database && psql -d my_database -f /path/to/my_dump. sql
  when: my_database_db_existence | failed

P.S. Также написано подробное сообщение в блоге , объясняющее каждую задачу ansible в реализации.

Поделиться geekQ     19 января 2017 в 16:35


  • Как импортировать дамп neo4j в текущую базу данных

    Я могу получить дамп текущей базы данных следующим образом: neo4j-shell -c dump > dump.sql Теперь, как я могу импортировать этот файл дампа в другую базу данных (используя shell)

  • Как импортировать дамп базы данных с двоичными файлами

    Мне нужно импортировать базу данных в phpmyadmin. Но проблема в том, что создателям базы данных пришла в голову замечательная идея поместить в нее несколько двоичных файлов. (Поле имеет тип tinyblop) когда я читаю дамп в notepad++, у меня есть что-то вроде: Так что есть специальные символы,…


Похожие вопросы:


SQL чтобы проверить, если база данных пуста (нет таблиц)

Мне нужно проверить, полностью ли пуста база данных (без таблиц), используя запрос SQL. Как это можно сделать? Спасибо за помощь!


Msg 3151: база данных, которая была сброшена, не была спокойна, когда был выполнен дамп

Я работаю над загрузкой дампов базы данных на новый сервер ASE, но когда я пытаюсь загрузить дампы 15 Гб и 32 ГБ в базу данных, я получаю следующую ошибку: Msg 3151, Уровень 16, Состояние 2: Сервер…


Как определить, если база данных postgresql пуста правильный путь

РЕДАКТИРОВАТЬ: Ответ, который появляется в первом поиске в stackoverflow, потенциально опасен и неверен для postgresql. Я был укушен им и удалил базу данных, которая на самом деле была заполнена…


mysql-как импортировать дамп базы данных с числовыми именами таблиц

Я пытаюсь создать дамп и импортировать базу данных, которая имеет только числовые имена таблиц. Я мало что могу сделать с Соглашением об именовании, и я знаю, что оно не должно быть числовым, но так…


Получение неопределенного значения, когда база данных пуста

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


Как импортировать дамп neo4j в текущую базу данных

Я могу получить дамп текущей базы данных следующим образом: neo4j-shell -c dump > dump.sql Теперь, как я могу импортировать этот файл дампа в другую базу данных (используя shell)


Как импортировать дамп базы данных с двоичными файлами

Мне нужно импортировать базу данных в phpmyadmin. Но проблема в том, что создателям базы данных пришла в голову замечательная идея поместить в нее несколько двоичных файлов. (Поле имеет тип…


Загрузить дамп базы данных в базу данных postgres

У меня есть дамп базы данных около 270 МБ, который я хочу загрузить в свою локальную базу данных postgres. Я ввел следующую команду: pg_dump databasename < dumpfile.sql После чего я получаю: —…


MAMP Pro: после обновления до 4 база данных пуста

После обновления с MAMP 3 до 4 вся база данных полностью пуста. В appsolute / MAMP PRO / db есть две папки: mysql с моими базами данных и mysql56, который почти пуст. Как я могу получить свои базы…


Как импортировать дамп базы данных PostgreSQL через узел и pg

Я пытаюсь импортировать дамп базы данных PostgreSQL, сохраненный как обычный текстовый файл,в psql, используя пакет pg в узле. до сих пор я читаю в файле как строку, а затем пытаюсь импортировать…

Создать/развернуть дамп MySQL БД

Как веб разработчику, мне часто приходится создавать и разворачивать дампы баз данных, и в основном это MySQL. В данной заметке я оставлю частые задачи по работе с дампами MySQL БД. На вскидку, при развертывании InnoDB таблицы ~ 1GB уходит около получаса. Если вам нужно засечь время создания/восстановления дампа — используйте команду time (time mysql ...).

Создание дампа MySQL базы

Создать полный дамп MySQL:

mysqldump -uroot --all-databases --routines --triggers -p > mysql. dump

Создать и сжать дамп БД:

mysqldump -uroot -proot DATABASE | gzip > ./db.sql.gz

Создать дамп структуры MySQL:

mysqldump -u%user% -p%pass% --no-data db_name > db_name.dump

Сжать SQL дамп:

gzip --best < db_name.sql > db_name.sql.gz

Исключить таблицы юзеров WP:

mysqldump -uUSER -pPASS --ignore-table=blog.wp_users --ignore-table=blog.wp_usermeta blog > blog_without_users.sql

Создать полный дамп БД — каждая БД в отдельном архиве (shell-скрипт):

#!/bin/bash
dblist=`mysql -u%user% -p%pass% -e "show databases" | sed -n '2,$ p'`
for db in $dblist; do
    mysqldump -u%user% -p%pass% --routines --triggers $db | gzip --best > $db.sql.gz
done

Восстановление дампа MySQL БД

Восстановить MySQL дамп:

mysql -uUSER -hlocalhost -pPASS DB_NAME < /path/dump.sql

Восстановить MySQL дамп из zip архива:

unzip -p dump. sql.zip | mysql -u root -p%pass% database%

Восстановить .sql.gz дамп:

gunzip -c dump.sql.gz | mysql -uroot -hlocalhost -p%pass% %database%

Выдернуть конкретную таблицу из общего дампа:

awk '/CREATE TABLE `table_name`/,/UNLOCK TABLES/' db_name.dump

#mysqldump, #db dump, #restore database

Как сделать дамп базы данных MySQL

Любой кто начинает работать с MySQL может столкнуться с необходимостью создать полную копию базы данных, тоесть дамп. Чаще всего это необходимо для того чтобы скопировать ВСЮ структуру базы и иногда саими данные. Также дамп часто используется для того чтобы восстановить базу данных в случае «поломки»

Команда mysqldump — создание дампа

Для того чтобы создать дамп — командная строка выглядит так:

mysqldump -uUSER -pPASSWORD DB_NAME > FILE_NAME_TO_SAVE

Где

  • -uUser — имя пользователя базы в формате типа -u[root]
  • -pPassword — пароль пользователя в формате типа -p[123456]
  • DB_NAME — имя базы данных
  • FILE_NAME_TO_SAVE — куда сохранять дамп

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

mysqldump -u -p DB_NAME > FILE_NAME_TO_SAVE

Пример:

mysqldump -uroot -p123456 mydb > dump.sql

Эта комбинация создаст файл dump.sql в той папке в которой вы выполняете команду.

Пакуем в zip:

zip ./dump.zip ./dump.sql

или в tar.gz:

tar -pczf ./dump.tar.gz ./dump.sql

Как восстановить базу данных из дампа

Теперь сделаем восстановление базы данных из дампа.

Для восстановления используем командный интерпретатор MySQL — команду с одноименным названием:

mysql -uUSER -pPASSWORD -f mydb < mydb_dump.sql

Часть < dump.sql отвечает за «закидывание» файла с SQL командами дампа в интерпретатор.

Пример:

mysql -uroot -p123456 -f mydb < dump.sql

Для того чтобы указать кодировку данных в дампе нужно использовать ключ —default-character-set:

mysql -uroot -p123456 -f --default-character-set=cp1251 mydb < dump. sql

Вот и вся магия

 

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

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

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

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

  оболочка> mysqldump [ аргументов ]>  имя_файла   

Чтобы выгрузить все базы данных, вызовите mysqldump с параметр --all-databases :

  оболочка> mysqldump --all-databases> dump.sql  

Чтобы выгрузить только определенные базы данных, назовите их в командной строке и использовать - базы данных вариант:

  оболочка> mysqldump --databases db1 db2 db3> dump. sql  

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

С - все-базы данных или - базы данных , mysqldump пишет CREATE БАЗА ДАННЫХ и ИСПОЛЬЗУЙТЕ операторы перед выводом дампа для каждой базы данных. Эта гарантирует, что при перезагрузке файла дампа создается каждый база данных, если она не существует, и делает ее базой данных по умолчанию поэтому содержимое базы данных загружается в ту же базу данных из которые они пришли.Если вы хотите, чтобы файл дампа заставлял удаление каждой базы данных перед ее воссозданием, используйте --add-drop-database вариант как хорошо. В этом случае mysqldump записывает DROP DATABASE предшествующий оператор каждый оператор CREATE DATABASE .

Чтобы выгрузить отдельную базу данных, назовите ее в командной строке:

  оболочка> mysqldump - тест баз данных> dump.sql  

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

  оболочка> mysqldump test> dump.sql  

Разница между двумя предыдущими командами заключается в том, что без - базы данных , дамп вывод не содержит CREATE БАЗА ДАННЫХ или ИСПОЛЬЗОВАТЬ заявления. Это имеет несколько последствий:

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

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

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

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

Чтобы выгрузить только определенные таблицы из базы данных, назовите их на командная строка после имени базы данных:

  оболочка> mysqldump test t1 t3 t7> dump.sql  

4.5.4 mysqldump — Программа резервного копирования базы данных

4.5.4

mysqldump — Программа резервного копирования базы данных

Клиентская утилита mysqldump выполняет логические резервные копии, создание набора операторов SQL, которые могут быть выполнены для воспроизвести исходные определения объектов базы данных и таблицу данные. Он выгружает одну или несколько баз данных MySQL для резервного копирования или перенос на другой SQL-сервер. mysqldump команда также может генерировать вывод в CSV, другом тексте с разделителями, или в формате XML.

Подсказка

Рассмотрите возможность использования утилит дампа MySQL Shell, которые обеспечивают параллельный дамп с несколькими потоками, сжатие файлов и отображение информации о ходе выполнения, а также облачные функции, такие как потоковая передача Oracle Cloud Infrastructure Object Storage, а также проверки и модификации совместимости службы баз данных MySQL. Дампы можно легко импортировать в экземпляр сервера MySQL или систему БД службы баз данных MySQL с помощью утилит загрузки дампа MySQL Shell. Инструкции по установке MySQL Shell можно найти здесь.

mysqldump требует как минимум SELECT привилегия для сброса столы, SHOW VIEW для самосвальных просмотров, TRIGGER для сброса триггеры, ТАБЛИЦЫ БЛОКИРОВКИ , если - опцион на одну транзакцию не используется и (начиная с MySQL 8. 0.21) ПРОЦЕСС , если - no-tablespaces опция не используется. Для некоторых параметров могут потребоваться другие привилегии, например указано в описании опций.

Чтобы перезагрузить файл дампа, у вас должны быть права, необходимые для выполнить содержащиеся в нем операторы, такие как соответствующие СОЗДАТЬ привилегий для объектов, созданных те заявления.

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

Заметка

Дамп, сделанный с помощью PowerShell в Windows, с выводом перенаправление создает файл с кодировкой UTF-16:

  оболочка> mysqldump [параметры]> dump. sql  

Однако UTF-16 не допускается в качестве набора символов подключения. (увидеть Недопустимые наборы символов клиента), поэтому файл дампа не может быть загружен правильно.Чтобы обойти в этой проблеме используйте параметр --result-file , который создает вывод в формате ASCII:

  оболочка> mysqldump [параметры] --result-file = dump.sql  
Вопросы производительности и масштабируемости

mysqldump преимущества включают удобство и гибкость просмотра или даже редактирования вывода перед восстановление. Вы можете клонировать базы данных для разработки и работы DBA, или создать небольшие вариации существующей базы данных для тестирование.Он не предназначен в качестве быстрого или масштабируемого решения для резервное копирование значительных объемов данных. При больших размерах данных даже если этап резервного копирования занимает разумное время, восстановление данные могут быть очень медленными, потому что воспроизведение операторов SQL включает дисковый ввод-вывод для вставки, создания индекса и так далее.

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

  • Если ваши таблицы в основном InnoDB столы, или если у вас есть смесь InnoDB и MyISAM , рассмотрите возможность использования mysqlbackup команда MySQL Продукт Enterprise Backup.(Доступно как часть Корпоративная подписка.) Обеспечивает максимальную производительность. для InnoDB резервных копий с минимальным срыв; он также может создавать резервные копии таблиц из MyISAM и другие механизмы хранения; и это предоставляет ряд удобных вариантов для размещения различные сценарии резервного копирования. Увидеть Раздел 30.2, «Обзор MySQL Enterprise Backup».

mysqldump может извлекать и выгружать таблицу содержимое строка за строкой, или он может получить все содержимое из таблицу и буферизуют ее в памяти перед сбросом.Буферизация в память может быть проблемой, если вы сбрасываете большие таблицы. Выгрузить таблицы строка за строкой используйте - опция Quick (или - опт , что позволяет - быстрый ). В --opt option (и, следовательно, --quick ) включен по умолчанию, поэтому для включения буферизации памяти используйте - пропустить-быстро .

Если вы используете последнюю версию mysqldump для создания дампа для перезагрузки на очень старый сервер MySQL, используйте - пропустить опцию вместо - опт или - опция расширенной вставки .

Для получения дополнительной информации о mysqldump , см. Раздел 7.4, «Использование mysqldump для резервного копирования».

Синтаксис вызова

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

  оболочка> mysqldump [ параметры ]  db_name  [ tbl_name ...]
оболочка> mysqldump [ параметры ] --databases  db_name  ...
оболочка> mysqldump [ параметры ] --all-databases  

Чтобы выгрузить целые базы данных, не называйте таблицы после db_name , или используйте - базы данных или - опция для всех баз данных .

Чтобы увидеть список опций вашей версии mysqldump поддерживает , введите команду mysqldump —help .

Синтаксис опций — Сводка по алфавиту

mysqldump поддерживает следующие параметры: который можно указать в командной строке или в [mysqldump] и [клиент] группы файла опций. Для получения информации о файлах опций используются программами MySQL, см. Раздел 4.2.2.2, «Использование файлов параметров».

Таблица 4.14 Параметры mysqldump


Варианты подключения

Команда mysqldump выполняет вход в MySQL. сервер для извлечения информации.Следующие параметры определяют, как для подключения к серверу MySQL на том же компьютере или удаленная система.

  • --bind-address = ip_address

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

  • - сжатие , -C

    Сжать всю информацию, передаваемую между клиентом и сервер, если возможно.Увидеть Раздел 4.2.8, «Контроль сжатия соединений».

    Начиная с MySQL 8.0.18, эта опция устарела. Ожидайте, что это быть удаленным в будущей версии MySQL. Увидеть Настройка сжатия устаревших подключений.

  • - алгоритмы сжатия = значение

    Разрешенные алгоритмы сжатия для подключений к сервер.Доступные алгоритмы такие же, как и для протокол_сжатия_алгоритмы системная переменная. Значение по умолчанию — без сжатия .

    Для получения дополнительной информации см. Раздел 4.2.8, «Контроль сжатия соединений».

    Эта опция была добавлена ​​в MySQL 8.0.18.

  • --default-auth = плагин

    Подсказка о том, какой плагин аутентификации на стороне клиента использовать.См. Раздел 6.2.17, «Подключаемая аутентификация».

  • - включить плагин открытого текста

    Включить открытый текст mysql_clear_password плагин аутентификации. (Увидеть Раздел 6.4.1.4, «Подключаемая аутентификация открытого текста на стороне клиента».)

  • - получить-сервер-открытый ключ

    Запросить с сервера открытый ключ, необходимый для ключа RSA парный обмен паролями.Эта опция применима к клиентам которые подтверждают caching_sha2_password аутентификация плагин. Для этого плагина сервер не отправляет общедоступные ключ, если не требуется. Эта опция игнорируется для аккаунтов которые не проходят аутентификацию с этим плагином. Это также игнорируется, если обмен паролями на основе RSA не используется, как есть случай, когда клиент подключается к серверу с помощью безопасное соединение.

    Если --server-public-key-path = имя_файла задан и указывает действительный файл открытого ключа, требуется приоритет над - получить-сервер-открытый ключ .

    Для получения информации о caching_sha2_password плагин, см. Раздел 6.4.1.2, «Кэширование подключаемой аутентификации SHA-2».

  • --host = имя_хоста , -h имя_хоста

    Дамп данных с сервера MySQL на указанном хосте. В хост по умолчанию — localhost .

  • --login-path = имя

    Параметры чтения из указанного пути входа в .mylogin.cnf файл пути для входа. А «Путь входа» — это группа опций, содержащая параметры, указывающие, к какому серверу MySQL подключаться и какой аккаунт нужно аутентифицировать как. Чтобы создать или изменить файл пути входа, используйте mysql_config_editor утилита.Увидеть Раздел 4.6.7, « mysql_config_editor — Утилита настройки MySQL».

    Для получения дополнительной информации об этом и других файлах опций см. Раздел 4.2.2.3, «Параметры командной строки, влияющие на обработку файла параметров».

  • --password [= пароль ] , -p [ пароль ]

    Пароль учетной записи MySQL, используемой для подключения к сервер. Значение пароля указывать необязательно. Если не указано, mysqldump запрашивает один. Если дано, не должно быть без пробела между --password = или -p и следующий за ним пароль. Если нет указана опция пароля, по умолчанию — нет пароль.

    Указание пароля в командной строке должно быть считается небезопасным. Чтобы не вводить пароль на в командной строке используйте файл параметров.Увидеть Раздел 6.1.2.1, «Руководство конечного пользователя по защите паролем».

    Чтобы явно указать, что пароля нет и что mysqldump не должен запрашивать один, используйте в - пропустить пароль вариант.

  • - труба , -W

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

  • --plugin-dir = dir_name

    Каталог, в котором нужно искать плагины. Укажите это вариант, если --default-auth опция используется для указания плагина аутентификации, но mysqldump не находит.Увидеть Раздел 6.2.17, «Подключаемая аутентификация».

  • --port = port_num , -P номер порта

    Для соединений TCP / IP — номер порта, который нужно использовать.

  • --protocol = {TCP | SOCKET | PIPE | MEMORY}

    Транспортный протокол, используемый для подключения к серверу.Это полезно, когда другие параметры подключения обычно приведет к использованию протокола, отличного от того, который вы хотите. Для подробности о допустимых значениях см. Раздел 4.2.7, «Протоколы передачи данных».

  • --server-public-key-path = имя_файла

    Путь к файлу в формате PEM, содержащему клиентская копия открытого ключа, необходимого серверу для обмена паролями на основе пары ключей RSA.Этот вариант применяется к клиентам, которые проходят аутентификацию с помощью sha256_password или caching_sha2_password аутентификация плагин. Этот параметр игнорируется для учетных записей, которые не пройти аутентификацию с помощью одного из этих плагинов. Это также игнорируется если обмен паролями на основе RSA не используется, как это имеет место когда клиент подключается к серверу с помощью безопасного подключение.

    Если --server-public-key-path = имя_файла задан и указывает действительный файл открытого ключа, требуется приоритет над - получить-сервер-открытый ключ .

    Для sha256_password этот параметр применяется только если MySQL был построен с использованием OpenSSL.

    Для получения информации о sha256_password и caching_sha2_password плагины, см. Раздел 6.4.1.3, «Подключаемая аутентификация SHA-256» и Раздел 6.4.1.2, «Кэширование подключаемой аутентификации SHA-2».

  • --socket = путь , -S путь

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

    В Windows этот параметр применяется, только если сервер был начал с модели named_pipe системная переменная включена для поддержки соединений с именованными каналами. Кроме того, пользователь, устанавливающий соединение, должен быть участником группы Windows, указанной named_pipe_full_access_group системная переменная.

  • --ssl *

    Параметры, начинающиеся с --ssl указывают следует ли подключаться к серверу с помощью SSL и указать где найти SSL-ключи и сертификаты.Увидеть Параметры команды для зашифрованных соединений.

  • --ssl-fips-mode = {OFF | ON | STRICT}

    Управляет включением режима FIPS на стороне клиента. В --ssl-fips-mode опция отличается от других --ssl- ххх варианты в том, что он не используется для установки зашифрованных соединений, а скорее влияет на то, какие криптографические операции, чтобы разрешить. См. Раздел 6.8, «Поддержка FIPS».

    Эти --ssl-fips-mode допустимые значения:

    Заметка

    Если объектный модуль OpenSSL FIPS недоступен, только допустимое значение для --ssl-fips-mode — это ВЫКЛ . В этом случае установка --ssl-fips-mode с по ON или STRICT причины клиент для выдачи предупреждения при запуске и работы в режиме, отличном от FIPS.

  • --tls-ciphersuites = ciphersuite_list

    Допустимые наборы шифров для зашифрованных соединений, которые используйте TLSv1.3. Значение представляет собой список из одного или нескольких Имена шифровальных наборов, разделенных двоеточиями. Наборы шифров, которые могут имя для этой опции зависит от библиотеки SSL, используемой для скомпилировать MySQL. Подробнее см. Раздел 6.3.2, «Протоколы и шифры TLS для зашифрованного соединения».

    Эта опция была добавлена ​​в MySQL 8.0.16.

  • --tls-version = список_протоколов

    Допустимые протоколы TLS для зашифрованных соединений. В значение — это список из одного или нескольких протоколов, разделенных запятыми имена. Протоколы, которые могут быть названы для этой опции зависят от библиотеки SSL, используемой для компиляции MySQL. Для подробности см. Раздел 6.3.2, «Протоколы и шифры TLS для зашифрованного соединения».

  • --user = имя_пользователя , -u имя_пользователя

    Имя пользователя учетной записи MySQL, которое будет использоваться для подключения к сервер.

  • --zstd-compress-level = уровень

    Уровень сжатия, используемый для подключений к серверу. которые используют алгоритм сжатия zstd .Допустимые уровни от 1 до 22, с большими значениями. с указанием возрастающих уровней сжатия. По умолчанию zstd степень сжатия 3. установка уровня сжатия не влияет на соединения, которые не используйте сжатие zstd .

    Для получения дополнительной информации см. Раздел 4.2.8, «Контроль сжатия соединений».

    Эта опция была добавлена ​​в MySQL 8.0,18.

Параметры файла опций

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

  • --defaults-extra-file = имя_файла

    Прочтите этот файл параметров после файла глобальных параметров, но (на Unix) перед файлом пользовательских опций. Если файл не существует или недоступен по иным причинам, возникает ошибка. имя_файла интерпретируется как относительное в текущий каталог, если указан как относительный путь а не полное имя пути.

    Для получения дополнительной информации об этом и других файлах опций см. Раздел 4.2.2.3, «Параметры командной строки, влияющие на обработку файла параметров».

  • --defaults-file = имя_файла

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

    Исключение: даже с - файл по умолчанию , клиент программы читают . mylogin.cnf .

    Для получения дополнительной информации об этом и других файлах опций см. Раздел 4.2.2.3, «Параметры командной строки, влияющие на обработку файла параметров».

  • --defaults-group-suffix = str

    Читайте не только обычные группы опций, но и группы с обычные имена и суффикс ул. .Например, mysqldump обычно читает [клиент] и [mysqldump] групп. Если --defaults-group-suffix = _other задана опция, mysqldump также читает [client_other] и [mysqldump_other] групп.

    Для получения дополнительной информации об этом и других файлах опций параметры, см. раздел 4.2.2.3, «Параметры командной строки, влияющие на обработку файла параметров».

  • - нет значений по умолчанию

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

    Исключением является то, что .mylogin.cnf файл, если он существует, читается во всех случаях.Это позволяет пароли следует указывать более безопасным способом, чем в команде линия, даже когда - по умолчанию используется . ( .mylogin.cnf создается mysql_config_editor утилита. Увидеть Раздел 4.6.7, « mysql_config_editor — Утилита настройки MySQL».)

    Для получения дополнительной информации об этом и других файлах опций параметры, см. раздел 4.2.2.3, «Параметры командной строки, влияющие на обработку файла параметров».

  • - печать по умолчанию

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

    Для получения дополнительной информации об этом и других файлах опций см. Раздел 4.2.2.3, «Параметры командной строки, влияющие на обработку файла параметров».

Опции DDL

Сценарии использования mysqldump включают настройку создать полностью новый экземпляр MySQL (включая таблицы базы данных) и замена данных в существующем экземпляре существующим базы данных и таблицы.Следующие параметры позволяют указать какие вещи снести и настроить при восстановлении дампа, кодирование различных операторов DDL в файле дампа.

  • --add-drop-база данных

    Напишите DROP DATABASE оператор перед каждым CREATE БАЗА ДАННЫХ заявление. Этот вариант обычно используется в сочетании с - все-базы данных или - базы данных вариант, потому что нет CREATE DATABASE операторов записываются, если не указан один из этих параметров.

    Заметка

    В MySQL 8.0 mysql схема считается схемой системы, которая не может быть упал конечными пользователями. Если --add-drop-database — это используется с - все-базы данных или с - базы данных , где список схем для выгрузки включает mysql , файл дампа содержит DROP DATABASE `mysql` инструкция, которая вызывает ошибку при перезагрузке файла дампа.

    Вместо этого использовать --add-drop-database , использовать - базы данных со списком схем для выгрузки, список которых не включает MySQL .

  • --добавить-выпустить-таблицу

    Напишите заявление DROP TABLE перед каждым СОЗДАТЬ ТАБЛИЦУ заявление.

  • - спусковой крючок

    Напишите DROP TRIGGER оператор перед каждым CREATE Заявление TRIGGER .

  • - все-табличные пространства , -Y

    Добавляет в дамп таблицы все операторы SQL, необходимые для создания любых табличные пространства, используемые NDB Таблица. В противном случае эта информация не включается в вывод mysqldump . Этот вариант в настоящее время актуально только для таблиц кластера NDB.

  • --no-create-db , -n

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

  • --no-create-info , -t

    Не пишите CREATE TABLE операторы, которые создают каждую выгружаемую таблицу.

    Заметка

    Эта опция не исключает , а не операторы, создающие группы файлов журнала или табличные пространства из mysqldump output; однако вы можете использовать - без табличных пространств вариант для этого.

  • - без табличных пространств , -y

    Эта опция подавляет все CREATE ГРУППА LOGFILE и СОЗДАТЬ Операторы TABLESPACE в выводе mysqldump .

  • - заменить

    Напишите заявления REPLACE вместо INSERT заявления.

Параметры отладки

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

  • - разрешить ключевые слова

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

  • - комментарии , -i

    Запишите дополнительную информацию в файл дампа, например версия программы, версия сервера и хост.Этот вариант включен по умолчанию. Чтобы скрыть эту дополнительную информацию, используйте --skip-comments .

  • --debug [= debug_options ] , - # [ debug_options ]

    Напишите журнал отладки. Типичный debug_options строка d: t: o, имя_файла .Значение по умолчанию — д: т: о, / tmp / mysqldump.trace .

    Эта опция доступна, только если MySQL был построен с использованием WITH_DEBUG . Выпуск MySQL двоичные файлы, предоставляемые Oracle, — это , а не построен с использованием этой опции.

  • - проверка отладки

    Распечатайте некоторую отладочную информацию при выходе из программы.

    Эта опция доступна, только если MySQL был построен с использованием WITH_DEBUG . Выпуск MySQL двоичные файлы, предоставляемые Oracle, — это , а не построен с использованием этой опции.

  • - отладочная информация

    Печать отладочной информации, а также использования памяти и ЦП статистика при выходе из программы.

    Эта опция доступна, только если MySQL был построен с использованием WITH_DEBUG .Выпуск MySQL двоичные файлы, предоставляемые Oracle, — это , а не построен с использованием этой опции.

  • - дата дампа

    Если - комментирует вариант задано, mysqldump выдает комментарий на конец дампа следующего вида:

      - Дамп завершен  DATE   

    Однако дата приводит к тому, что файлы дампа принимаются в разное время. казаться разными, даже если данные идентичный. - дата дампа и - дата пропуска-свалки контролировать, добавляется ли дата к комментарию. В по умолчанию --dump-date (укажите дату в комментарии). - дата пропуска-свалки подавляет печать даты.

  • - сила , - f

    Игнорировать все ошибки; продолжать, даже если возникает ошибка SQL во время сброса таблицы.

    Одно из применений этой опции — вызвать mysqldump для продолжения выполнения, даже если он встречает представление, которое стало недействительным, потому что определение относится к таблице, которая была удалена. Без - принудительно , mysqldump выходит с сообщением об ошибке. С - сила , mysqldump выводит сообщение об ошибке, но он также записывает комментарий SQL, содержащий определение представления на вывод дампа и продолжает выполнение.

    Если --ignore-error также предоставляется опция игнорирования конкретных ошибок, - сила имеет приоритет.

  • --log-error = имя_файла

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

  • - пропустить комментарии

    См. Описание - комментирует вариант .

  • - вербальный , -v

    Подробный режим. Распечатать дополнительную информацию о том, что программа делает.

Параметры справки

Следующие параметры отображают информацию о mysqldump сама команда.

Параметры интернационализации

Следующие параметры изменяют способ mysqldump Команда представляет символьные данные с настройками национального языка.

Параметры репликации

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

  • - приложения-подчиненные-заявления

    Для дампа реплики, созданного с - опция dump-slave , добавьте STOP REPLICA | Заявление SLAVE перед заявлением с двоичные координаты журнала, а СТАРТ РЕПЛИКА | Оператор SLAVE в конце вывода.

  • - удаленные мастер-журналы

    На исходном сервере репликации удалите двоичные журналы с помощью отправка ПРОДУВКА ДВОИЧНЫХ ЖУРНАЛОВ запрос на сервер после выполнения операции дампа. Для этого варианта требуется ПЕРЕЗАГРУЗИТЬ привилегии, а также привилегии, достаточные для выполнения этого оператора. Этот вариант автоматически включает - данные мастера .

  • --dump-slave [= значение ]

    Этот вариант похож на --master-data за исключением того, что он используется для дампа сервера-реплики для создания файла дампа который можно использовать для настройки другого сервера в качестве реплики, имеет тот же источник, что и сброшенный сервер. Это вызывает дамп вывод для включения CHANGE REPLICATION Оператор SOURCE TO (из MySQL 8.0,23) или CHANGE MASTER TO заявление (до MySQL 8.0.23), что указывает на двоичный журнал координаты (имя файла и положение) сброшенного источник реплики. ИЗМЕНЕНИЕ Оператор REPLICATION SOURCE TO читает значения из Relay_Master_Log_File и Exec_Master_Log_Pos из ПОКАЗАТЬ РЕПЛИКА | SLAVE STATUS и использует их для SOURCE_LOG_FILE и SOURCE_LOG_POS соответственно.Эти координаты исходного сервера репликации, из которых реплика начинает репликацию.

    --dump-slave вызывает координаты из источник, который будет использоваться, а не сброшенные сервер, как это делает - опция master-data . В кроме того, указание этой опции вызывает --master-data параметр отменяется, если используется и фактически игнорируется.

    Предупреждение

    Этот параметр не следует использовать, если сервер, на котором дамп будет применяться gtid_mode = ON и MASTER_AUTOPOSITION = 1 .

    Значение параметра обрабатывается так же, как и для - данные мастера . Настройка нет значение или 1 вызывает CHANGE REPLICATION Оператор SOURCE TO (из MySQL 8.0.23) или CHANGE MASTER TO заявление (до MySQL 8.0.23) для записи в дамп. Настройка 2 заставляет оператор быть написанным, но заключенным в SQL Комментарии. Он имеет тот же эффект, что и --master-data с точки зрения включения или отключение других опций и способ обработки блокировки.

    Эта опция заставляет mysqldump останавливать репликация потока SQL перед дампом и его повторный перезапуск после.

    - dump-slave отправляет ПОКАЗАТЬ РЕПЛИКА | Сообщение SLAVE STATUS серверу для получать информацию, поэтому требуются привилегии, достаточные для выполнить это заявление.

    В сочетании с --dump-slave - приложения-подчиненные-заявления и - включить-мастер-хост-порт варианты также могут быть использованы.

  • - включить-мастер-хост-порт

    Для модели ИЗМЕНИТЬ ИСТОЧНИК РЕПЛИКАЦИИ Оператор TO (из MySQL 8.0.23) или CHANGE MASTER TO заявление (до MySQL 8.0.23) в реплике дампа, созданной с - опция dump-slave , добавить SOURCE_HOST | MASTER_HOST и SOURCE_PORT | MASTER_PORT параметры для имени хоста и Номер порта TCP / IP источника реплики.

  • --master-data [= значение ]

    Используйте эту опцию, чтобы выгрузить исходный сервер репликации на создать файл дампа, который можно использовать для настройки другого сервер как реплика источника. Это вызывает вывод дампа для включения ИЗМЕНИТЬ ИСТОЧНИК РЕПЛИКАЦИИ Оператор TO (из MySQL 8.0.23) или CHANGE MASTER TO заявление (до MySQL 8.0.23), что указывает на двоичный журнал координаты (имя файла и положение) выгружаемого сервера. Это координаты исходного сервера репликации из реплика должна начать репликацию после загрузки файл дампа в реплику.

    Если значение параметра равно 2, CHANGE ИСТОЧНИК РЕПЛИКАЦИИ НА | CHANGE MASTER TO заявление написано как комментарий SQL и поэтому носит только информативный характер; Это не действует при перезагрузке файла дампа. Если вариант значение 1, инструкция не записывается как комментарий и вступает в силу при перезагрузке файла дампа. Если нет варианта указано значение, значение по умолчанию — 1.

    --master-data отправляет SHOW MASTER STATUS Заявление к серверу для получения информации, поэтому он требует привилегии, достаточные для выполнения этого оператора. Этот вариант также требует ПЕРЕЗАГРУЗИТЬ привилегия и двоичный журнал должны быть включены.

    Опция --master-data автоматически выключает --lock-tables .Также включается - блокировать все таблицы , если только - одинарная транзакция также указывается, и в этом случае устанавливается глобальная блокировка чтения только на короткое время в начале дампа (см. описание для - разовая транзакция ). В во всех случаях любое действие с журналами происходит в точный момент свалка.

    Также можно настроить реплику, сбросив существующая копия источника, используя - вариант dump-slave , который отменяет --master-data и заставляет его быть игнорируется, если используются обе опции.

  • --set-gtid-purged = значение

    Этот вариант предназначен для серверов, использующих репликацию на основе GTID. ( gtid_mode = ON ). Он контролирует включение SET @@ GLOBAL.gtid_purged в выводе дампа, который обновляет значение gtid_purged на сервере где перезагружается файл дампа, чтобы добавить набор GTID из исходный сервер gtid_executed система переменная. gtid_purged трюмов GTID всех транзакций, которые были применены к сервер, но не существуют ни в одном двоичном файле журнала на сервер. mysqldump поэтому добавляет GTID для транзакций, которые были выполнены на источнике сервер, так что целевой сервер записывает эти транзакции как применяется, хотя в его двоичном коде их нет журналы. --set-gtid-purged также управляет включение SET @@ СЕССИЯ.sql_log_bin = 0 , который отключает ведение двоичного журнала во время перезагрузки файла дампа. Эта оператор предотвращает создание новых GTID и назначены транзакциям в файле дампа, поскольку они выполняется, так что исходные GTID для транзакций используются.

    Если вы не установите --set-gtid-purged вариант, по умолчанию SET @@ГЛОБАЛЬНЫЙ.Оператор gtid_purged включен в вывести вывод, если GTID включены на сервере, на котором вы находитесь резервное копирование, а набор GTID в глобальном значении gtid_executed система переменная не пуста. НАБОР @@ SESSION.sql_log_bin = 0 также включен если на сервере включены GTID.

    В MySQL 5. 6 и 5.7 вы можете заменить значение gtid_purged с указанный набор GTID при условии, что gtid_executed и gtid_purged пустые.От MySQL 8.0, вы можете заменить значение gtid_purged с указанный набор GTID, или вы можете добавить знак плюса (+) к оператор для добавления указанного набора GTID к набору GTID это уже проводится Астрахань . mysqldump SET @@ GLOBAL.gtid_purged заявление включает плюс знак (+) в комментарии к версии, который вступает в силу, когда файл дампа воспроизводится в выпусках MySQL 8.0, что означает что для этих выпусков набор GTID из файла дампа добавлен к существующим gtid_purged значение. Для MySQL 5.6 и 5.7, значение gtid_purged заменено с GTID, установленным из файла дампа, что может произойти только когда gtid_executed — это пустой набор (поэтому, когда репликация не была запущена ранее или когда репликация ранее не использовалась GTID). Для получения более подробной информации о том, как SET Оператор @@ GLOBAL.gtid_purged работает, см. gtid_purged описание для выпуск, в котором должен быть воспроизведен файл дампа.

    Важно отметить, что значение, включенное в mysqldump для набора @@ GLOBAL.gtid_purged заявление включает GTID всех транзакций в gtid_executed установлен на сервер, даже те, которые изменили подавленные части база данных или другие базы данных на сервере, которые не были включен в частичный дамп.Это может означать, что после gtid_purged значение было обновляется на сервере, на котором воспроизводится файл дампа, GTID присутствуют, которые не имеют отношения к каким-либо данным о цели сервер. Если вы больше не воспроизводите файлы дампа на целевой сервер, посторонние GTID не вызывают никаких проблемы с дальнейшей работой сервера, но они затруднить сравнение или согласование наборов GTID на разные серверы в топологии репликации. Если вы сделаете воспроизвести следующий файл дампа на целевом сервере, который содержит те же GTID (например, другой частичный дамп с того же исходного сервера), любой SET @@ GLOBAL.gtid_purged заявление во втором дампе файл не работает. В этом случае либо удалите инструкцию вручную перед воспроизведением файла дампа или вывести дамп файл без заявления.

    Заметка

    Для MySQL 5.6 и 5.7, не рекомендуется загружать файл дампа, когда на сервере включены GTID ( gtid_mode = ON ), если ваш файл дампа включает системные таблицы. mysqldump выдает инструкции DML для системные таблицы, использующие нетранзакционный MyISAM двигатель хранения, и эта комбинация не допускается, когда GTID включены.

    Если SET @@ GLOBAL. gtid_purged заявление не будет желаемого результата на вашем целевом сервере, вы может исключить оператор из вывода, или (из MySQL 8.0.17) включите его, но закомментируйте, чтобы это не было действует автоматически. Вы также можете включить заявление но вручную отредактируйте его в файле дампа, чтобы добиться желаемого результат.

    Возможные значения для --set-gtid-purged опции следующие:

    АВТО

    Значение по умолчанию.Если на сервере включены GTID вы делаете резервную копию и gtid_executed не пусто, SET @@ GLOBAL.gtid_purged есть добавлен к выходу, содержащий набор GTID из Астрахань. . Если GTID включены, SET @@ SESSION. sql_log_bin = 0 добавлен в вывод. Если GTID не включены на сервере, операторы не добавляются к выводу.

    ВЫКЛ

    SET @@ GLOBAL.gtid_purged не добавлен к выходу, и SET @@ SESSION.sql_log_bin = 0 не добавляется в вывод. Для сервера, где GTID не используются, используйте этот вариант или AUTO . Используйте только это вариант для сервера, на котором используются GTID, если вы убедитесь, что необходимый набор GTID уже присутствует в gtid_purged на целевой сервер и не должен быть изменен, или если вы планируйте определять и добавлять недостающие идентификаторы GTID вручную.

    НА

    Если на сервере, для которого выполняется резервное копирование, включены GTID, SET @@ GLOBAL. gtid_purged добавлен на выход (если только gtid_executed есть пустой) и SET @@ SESSION.sql_log_bin = 0 добавлен в вывод. Ошибка возникает, если вы установите этот параметр, но GTID не включены на сервере.Для сервера где используются GTID, используйте эту опцию или AUTO , если вы не уверены, что GTID в gtid_executed нет необходимо на целевом сервере.

    КОММЕНТАРИРОВАНЫ

    Доступно в MySQL 8.0.17. Если GTID включены на сервер, для которого выполняется резервное копирование, SET @@ГЛОБАЛЬНЫЙ.gtid_purged добавлен в вывод (если только gtid_executed пусто), но закомментировано. Это значит, что значение gtid_executed есть доступно на выходе, но никаких действий не предпринимается автоматически при перезагрузке файла дампа. SET @@ SESSION.sql_log_bin = 0 - это добавлен к выходным данным и не закомментирован.С участием КОММЕНТАРИЙ , вы можете контролировать использование из gtid_executed установить вручную или с помощью автоматизации. Например, вы может предпочесть это сделать, если вы переносите данные в другой сервер, у которого уже есть другие активные базы данных.

Параметры формата

Следующие параметры определяют, как представлять весь дамп. файл или определенные виды данных в файле дампа.Они тоже контролировать, записывается ли некоторая дополнительная информация в файл дампа.

  • - компактный

    Получите более компактный результат. Эта опция включает - пропустить-добавить-drop-table , - пропустить-добавить-замки , - пропустить комментарии , - пропустить-отключить-ключи , и - пропустить набор кодов опции.

  • --compatible = имя

    Производить вывод, более совместимый с другой базой данных системы или со старыми серверами MySQL. Единственный разрешенный значение для этой опции - ansi , что имеет то же значение, что и соответствующая опция для установки серверный режим SQL. См. Раздел 5.1.11, «Режимы SQL сервера».

  • - вставка в комплекте , -c

    Используйте полный INSERT операторы, которые включают имена столбцов.

  • - создать параметры

    Включите все параметры таблиц, специфичные для MySQL, в CREATE TABLE операторов.

  • --fields-terminated-by = ... , - вложенные поля = ... , --fields-optional-enclosed by = ... , - поля-экранированные = ...

    Эти параметры используются с --tab option и иметь то же значение, что и соответствующий ПОЛЯ пункты для ДАННЫЕ НАГРУЗКИ .Увидеть Раздел 13.2.7, «Заявление о ЗАГРУЗКЕ ДАННЫХ».

  • - шестнадцатеричный двоичный объект

    Дамп двоичных столбцов в шестнадцатеричной системе счисления (например, 'abc' становится 0x616263 ). Затронутые типы данных: ДВОИЧНЫЙ , ВАРБИНАР , BLOB типов, BIT , все типы пространственных данных, и другие недвоичные типы данных при использовании с двоичный набор символов.

  • - линии-завершаются-по = ...

    Эта опция используется с - вкладка вариант и имеет то же значение, что и соответствующие ЛИНИИ пункт для ДАННЫЕ НАГРУЗКИ . Увидеть Раздел 13.2.7, «Заявление о ЗАГРУЗКЕ ДАННЫХ».

  • - цитаты , -Q

    Идентификаторы котировок (например, база данных, таблица и столбец имена) в пределах ` знаков.Если ANSI_QUOTES Режим SQL включен, идентификаторы заключаются в кавычки в диапазоне символы. Эта опция включена по умолчанию. Может быть отключен с помощью --skip-quote-names , но это option должен быть указан после любого варианта, такого как - совместимый , который может включить --quote-names .

  • --result-file = имя_файла , -r имя_файла

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

    Этот параметр следует использовать в Windows, чтобы предотвратить перевод строки \ n символов из преобразованных в \ r \ n последовательности возврата каретки / новой строки.

  • --show-create-skip-secondary-engine = значение

    Исключает пункт ВТОРИЧНЫЙ ДВИГАТЕЛЬ из CREATE TABLE операторов. Это делает это путем включения show_create_table_skip_secondary_engine системная переменная на время операции дампа. Кроме того, вы можете включить show_create_table_skip_secondary_engine системная переменная до использования mysqldump .

    Эта опция была добавлена ​​в MySQL 8.0.18. Попытка mysqldump работа с --show-create-skip-secondary-engine вариант в выпуске до MySQL 8.0,18, что не поддержать show_create_table_skip_secondary_engine переменная вызывает ошибку.

  • --tab = dir_name , -T dir_name

    Создавать файлы данных в текстовом формате, разделенные табуляцией. Для каждого выгруженная таблица, mysqldump создает имя_таблицы .sql файл, содержащий CREATE TABLE , который создает таблицу, и оператор сервер пишет имя_таблицы .txt файл, содержащий его данные. Значение опции - это каталог, в который можно записать файлы.

    Заметка

    Эту опцию следует использовать только тогда, когда mysqldump запускается на той же машине, что и сервер mysqld .Потому что сервер создает в каталоге * .txt файлов что вы укажете, каталог должен быть доступен для записи сервер и учетная запись MySQL, которую вы используете, должны иметь FILE привилегия. Потому что mysqldump создает * . sql в том же каталоге, он должен быть доступным для записи вашей системной учетной записи.

    По умолчанию файлы данных .txt форматируется с использованием символов табуляции между значениями столбца и перевод строки в конце каждой строки.Формат можно указать явно используя - поля - xxx и - линии-завершены-по опции.

    Значения столбца преобразуются в указанный набор символов посредством - набор символов по умолчанию вариант.

  • --tz-utc

    Эта опция включает TIMESTAMP столбцы для сброса и перезагрузки между серверами в разные часовые пояса. mysqldump устанавливает свое часовой пояс подключения к UTC и добавляет SET TIME_ZONE = '+ 00:00' в файл дампа. Без этого вариант, TIMESTAMP столбцов выгружается и перезагружается в часовых поясах, локальных для источника и целевые серверы, что может привести к измените, если серверы находятся в разных часовых поясах. --tz-utc также защищает от изменений из-за на летнее время. --tz-utc - это включен по умолчанию. Чтобы отключить его, используйте - skip-tz-utc .

  • --xml , -X

    Записать вывод дампа как правильно сформированный XML.

    ПУСТО , 'NULL' и пустые значения : для столбец с именем имя_столбца , NULL значение, пустая строка и строковое значение 'NULL' выделяются друг от друга в выводе, генерируемом этой опцией как следует.

    Значение: Представление XML:
    NULL ( неизвестное значение )

    <поле name = " имя_столбца " xsi: nil = "true" />

    ' ( пустая строка )

    <поле name = " column_name ">

    'NULL' ( строковое значение )

    <поле name = " column_name "> NULL

    Вывод клиента mysql при запуске используя также опцию --xml следует предыдущим правилам. (Увидеть Раздел 4.5.1.1, «Параметры клиента mysql».)

    Вывод XML из mysqldump включает Пространство имен XML, как показано здесь:

      оболочка> mysqldump --xml -u корневой мир Город
    
    
    
    
    
    
    
    
    
    
    
    
    
    
     1 
     Кабул 
     AFG 
     Кабол 
     1780000 
    
    
     . .. 
    
    
     4079 
     Рафах 
     PSE 
     Рафах 
     

Параметры фильтрации

Следующие параметры определяют, какие типы объектов схемы записывается в файл дампа: по категориям, например по триггерам или События; по имени, например, выбирая, какие базы данных и таблицы для сброса; или даже фильтрация строк из данных таблицы с помощью пункт WHERE .

  • - все базы данных , -A

    Дамп всех таблиц во всех базах данных. Это то же самое, что использовать опция --databases и именование всех баз данных в командной строке.

    До MySQL 8.0 - подпрограммы и --события варианты для mysqldump и mysqlpump не требовалось включать сохраненные процедуры и события при использовании - опция для всех баз данных : В дамп включена система mysql база данных, а следовательно, и MySQL. proc и mysql.event таблиц, содержащих сохраненные определения правил и событий. Начиная с MySQL 8.0, mysql.event и mysql.proc таблицы не используются. Определения соответствующих объектов хранятся в данных таблицы словаря, но эти таблицы не выгружаются. Чтобы включить сохраненные процедуры и события в дамп, созданный с помощью --all-databases , используйте - подпрограммы и --события опции явно.

  • - базы данных , -B

    Сбросьте несколько баз данных. Как обычно, mysqldump обрабатывает первый аргумент имени в командной строке в качестве имени базы данных и следующих имен как имена таблиц. С этой опцией обрабатываются все имена аргументы как имена базы данных. СОЗДАТЬ БАЗА ДАННЫХ и ИСПОЛЬЗУЙТЕ операторы включаются в вывод перед каждым новым база данных.

    Эта опция может использоваться для сброса performance_schema база данных, которая обычно не сбрасывается даже с - опция для всех баз данных . (Также используйте - скиплок-столы вариант.)

  • - события , -E

    Включить события планировщика событий для сброшенных баз данных в выход.Для этого варианта требуется EVENT привилегии для тех, кто базы данных.

    Результат, созданный с помощью --events содержит СОЗДАТЬ СОБЫТИЕ заявления для создания событий.

  • --ignore-error = ошибка [, ошибка] . ..

    Игнорируйте указанные ошибки. Значение параметра - это список номера ошибок через запятую, указывающие ошибки игнорировать во время выполнения mysqldump .Если -force вариант также дано игнорировать все ошибки, - сила имеет приоритет.

  • --ignore-table = db_name.tbl_name

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

  • - нет данных , -d

    Не записывать информацию о строках таблицы (то есть не выгружать содержание таблицы). Это полезно, если вы хотите сбросить только CREATE TABLE заявление для таблица (например, для создания пустой копии таблицы загрузив файл дампа).

  • - подпрограммы , -R

    Включите хранимые подпрограммы (процедуры и функции) для выгруженные базы данных на выходе.Для этого варианта требуется global SELECT привилегия.

    Результат, сгенерированный с помощью - подпрограмм содержит СОЗДАТЬ ПРОЦЕДУРУ и CREATE FUNCTION операторов для создать подпрограммы.

  • - столы

    Заменить - базы данных или вариант -B . mysqldump рассматривает все аргументы имени, следующие за параметром, как таблицу имена.

  • - триггеры

    Включите в вывод триггеры для каждой выгружаемой таблицы. Эта опция включена по умолчанию; отключить его с помощью - триггеры пропуска .

    Чтобы иметь возможность сбрасывать триггеры таблицы, вы должны иметь TRIGGER привилегия для Таблица.

    Допускаются множественные триггеры. mysqldump сбрасывает триггеры при активации порядок, чтобы при перезагрузке файла дампа триггеры созданы в том же порядке активации. Однако если mysqldump файл дампа содержит несколько триггеры для таблицы с одним и тем же событием триггера и время действия, при попытках загрузить дамп возникает ошибка файл на старый сервер, который не поддерживает несколько триггеры. (Для обходного пути см. Примечания к понижению версии; вы можете преобразовать триггеры для совместимости со старыми серверов.)

  • --where = ' where_condition ' , -w ' где_условие '

    Дампить только строки, выбранные данным ГДЕ состояние. Цитаты вокруг условие является обязательным, если оно содержит пробелы или другие символы, которые являются специальными для вашего командного интерпретатора.

    Примеры:

      --where = "user = 'jimf'"
    -w "ИД пользователя> 1"
    -w "ИД пользователя <1"  
Параметры производительности

Следующие варианты наиболее актуальны для выступления особенно операций восстановления. Для больших наборов данных операция восстановления (обработка INSERT операторы в файле дампа) является наиболее трудоемкой частью. Когда необходимо быстро восстановить данные, спланируйте и протестируйте выполнение этого этапа заранее.Время восстановления измерено через несколько часов вы можете предпочесть альтернативное резервное копирование и восстановление решение, такое как MySQL Enterprise Backup для InnoDB - только и многофункциональные базы данных.

На производительность также влияет транзакционный варианты, в первую очередь для операции дампа.

  • --статистика-столбец

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

  • - отключение клавиш , -K

    Для каждой таблицы окружите INSERT операторы с / *! 40000 ИЗМЕНИТЬ ТАБЛИЦУ имя_таблицы ОТКЛЮЧЕНИЕ КЛЮЧЕЙ * /; и / *! 40000 ИЗМЕНЕНИЕ ТАБЛИЦЫ имя_таблицы РАЗРЕШЕНИЕ КЛЮЧЕЙ * /; заявлений. Это делает загрузку файла дампа быстрее, потому что индексы создаются после того, как все строки вставлен. Этот вариант эффективен только для неуникальных индексы MyISAM таблиц.

  • - удлиненная вставка , -e

    Напишите инструкции INSERT , используя многострочный синтаксис, включающий несколько ЗНАЧЕНИЯ списков. Это приводит к меньшему дамп файла и ускоряет вставку при перезагрузке файла.

  • - вставить-игнорировать

    Напишите ВСТАВИТЬ ИГНОРИРОВАТЬ утверждения , а не INSERT заявления.

  • --max-allowed-packet = значение

    Максимальный размер буфера для клиент / сервер общение. По умолчанию - 24 МБ, максимум - 1 ГБ.

  • --net-buffer-length = значение

    Начальный размер буфера для клиент / сервер общение. При создании многорядной INSERT операторы (как с - удлиненная вставка или - опция опт ), mysqldump создает строки до - длина сетевого буфера байт длинная.Если вы увеличите эту переменную, убедитесь, что MySQL сервер net_buffer_length системная переменная имеет значение как минимум такое большое.

  • - тайм-аут сети ,

    Включите выгрузку больших таблиц, установив --max-allowed-packet от до максимальное значение и сетевые таймауты чтения и записи в большое значение. Эта опция включена по умолчанию. Отключить это, используйте - тайм-аут пропуска сети .

  • - опт

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

    Поскольку параметр --opt включен по умолчанию вы указываете только обратное, - пропустить опцию , чтобы выключить несколько настроек по умолчанию. См. Обсуждение mysqldump группы опций для информации об выборочно включение или отключение подмножества параметров, на которые влияет - опт .

  • - быстрый , - q

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

  • - пропустить опцию

    См. Описание - опция опт .

Варианты транзакций

Следующие параметры влияют на производительность дампа. эксплуатации, в отличие от надежности и согласованности экспортированные данные.

  • --добавить замки

    Окружите каждую свалку стола замком LOCK ТАБЛИЦЫ и РАЗБЛОКИРОВАТЬ ТАБЛИЦЫ заявлений. Это приводит к более быстрым вставкам при перезагрузке файла дампа.Увидеть Раздел 8.2.5.1, «Оптимизация операторов INSERT».

  • - промывочные журналы , -F

    Перед запуском дампа очистите файлы журнала сервера MySQL. Для этого варианта требуется ПЕРЕЗАГРУЗИТЬ привилегия. Если вы используете этот вариант в сочетании с - опция для всех баз данных , журналы сбрасываются для каждой базы данных сбросил .Исключение составляют случаи использования - блокировать все таблицы , --master-data , или - одинарная транзакция : In в этом случае журналы сбрасываются только один раз, что соответствует момент, когда все таблицы заблокированы СТОЛЫ ДЛЯ ПРОМЫВКИ С БЛОКИРОВКОЙ СЧИТЫВАНИЯ . Если вы хотите, чтобы дамп и промывка журнала происходили точно в в тот же момент вы должны использовать - промывочные журналы вместе с - блокировать все таблицы , --master-data , или - разовая операция .

  • - флэш-привилегии

    Добавить ПРИВИЛЕГИИ ПРОМЫВКИ оператор вывода дампа после сброса база данных mysql . Этот вариант должен быть используется каждый раз, когда дамп содержит mysql база данных и любая другая база данных, которая зависит от данных в база данных mysql для правильного восстановление.

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

  • - блокировать все таблицы , -x

    Заблокируйте все таблицы во всех базах данных. Это достигается получение глобальной блокировки чтения на время всего свалка. Эта опция автоматически отключается - разовая операция и - столы блокировки .

  • - запорные столы , -l

    Для каждой выгружаемой базы данных заблокируйте все таблицы для дампа перед их сбросом. Таблицы заблокированы ЧИТАТЬ ЛОКАЛЬНЫЙ для разрешения одновременных вставок в случае таблиц MyISAM . Для транзакционные таблицы, такие как InnoDB , - разовая транзакция - это намного лучший вариант, чем --lock-tables потому что ему вообще не нужно блокировать таблицы.

    Поскольку --lock-tables блокирует таблицы для каждого отдельно, эта опция не гарантирует, что таблицы в файле дампа логически согласованы между базы данных. Таблицы в разных базах данных могут быть сброшены в совершенно разные состояния.

    Некоторые варианты, например - опт , автоматически включить --lock-tables .Если хотите переопределите это, используйте --skip-lock-tables в конец списка опций.

  • - без автоматической фиксации

    Приложите INSERT заявления для каждой выгружаемой таблицы в пределах SET autocommit = 0 и COMMIT заявления.

  • - первичный

    Дамп каждой строки таблицы, отсортированной по первичному ключу или по первый уникальный индекс, если такой индекс существует. Это полезно при выгрузке таблицы MyISAM для загрузки в таблицу InnoDB , но делает дамп операция занимает значительно больше времени.

  • --shared-memory-base-name = имя

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

    Этот параметр применяется только в том случае, если сервер был запущен с shared_memory система переменная включена для поддержки соединений с общей памятью.

  • - разовая операция

    Эта опция устанавливает режим изоляции транзакции на ПОВТОРНОЕ ЧТЕНИЕ и отправляет START TRANSACTION SQL-запрос к серверу перед сброс данных. Это полезно только с транзакционными таблицами например, InnoDB , потому что тогда он сбрасывает согласованное состояние базы данных в то время, когда СТАРТ СДЕЛКА была выпущена без блокировки каких-либо Приложения.

    При использовании этой опции следует помнить, что только Таблицы InnoDB выгружаются в согласованном штат. Например, любой MyISAM или ПАМЯТЬ таблиц сброшены при использовании этого опция может все еще изменить состояние.

    Хотя - дамп одной транзакции находится в процессе, чтобы обеспечить действительный файл дампа (правильная таблица содержимое и координаты двоичного журнала), других подключений нет следует использовать следующие утверждения: ИЗМЕНИТЬ ТАБЛИЦУ , СОЗДАТЬ ТАБЛИЦУ , ТАБЛИЦА ПАДЕНИЯ , ПЕРЕИМЕНОВАНИЕ ТАБЛИЦЫ , ОБРЕЗАННАЯ ТАБЛИЦА . Последовательный read не изолирован от этих утверждений, поэтому используйте их на стол, который будет сброшен, может вызвать SELECT , который выполняется mysqldump для получения содержимого таблицы получить неверное содержимое или потерпеть неудачу.

    - опцион на одну транзакцию и - замки-столы вариант есть взаимоисключающие, поскольку LOCK ТАБЛИЦЫ заставляет любые ожидающие транзакции быть совершено неявно.

    Чтобы выгрузить большие таблицы, объедините - опцион на одну транзакцию с - быстрый вариант .

Группы опций
  • Опция --opt включается несколько настроек, которые работают вместе для выполнения быстрого дампа операция. Все эти настройки включены по умолчанию, потому что --opt по умолчанию включен. Таким образом, вы редко, если всегда указывайте - опт . Вместо этого вы можете повернуть эти настройки отключите как группу, указав - skip-opt , необязательно повторно включить определенные настройки, указав соответствующие параметры позже в командной строке.

  • Опция --compact превращает выключить несколько настроек, которые определяют, является ли необязательным утверждения и комментарии появляются в выводе.Опять же, ты можешь следуйте этому параметру с другими параметрами, которые повторно включают определенные настройки или включите все настройки с помощью - skip-compact form.

При выборочном включении или отключении эффекта группы вариант, порядок важен, потому что варианты обрабатываются в первую очередь длиться. Например, - отключение клавиш - замки-столы - пропустить вариант не будет предполагаемый эффект; это то же самое, что и - пропустить отдельно.

Примеры

Чтобы сделать резервную копию всей базы данных:

  оболочка> mysqldump  db_name >  backup-file.sql   

Чтобы загрузить файл дампа обратно на сервер:

  оболочка> mysql  db_name  < backup-file.sql   

Другой способ перезагрузить файл дампа:

  оболочка> mysql -e "источник  / путь к файлу резервной копии / резервной копии.sql  " имя_бд   

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

  оболочка> mysqldump --opt  db_name  | mysql --host =  удаленный_хост  -C  имя_бд   

Вы можете выгрузить несколько баз данных одной командой:

  оболочка> mysqldump --databases  db_name1  [ db_name2 . ..]> my_databases.sql  

Чтобы выгрузить все базы данных, используйте - опция для всех баз данных :

  оболочка> mysqldump --all-databases> all_databases.sql  

Для таблиц InnoDB , mysqldump предоставляет способ сделать онлайн резервный:

  оболочка> mysqldump --all-databases --master-data --single-transaction> all_databases.sql  

Эта резервная копия устанавливает глобальную блокировку чтения для всех таблиц (используя СТОЛЫ ДЛЯ ПРОМЫВКИ С БЛОКИРОВКОЙ ЧТЕНИЯ ) в начало свалки.Как только этот замок был считываются координаты двоичного журнала и блокировка выпущенный. Если выполняются длинные операторы обновления, когда FLUSH выписка выдается, Сервер MySQL может зависнуть до тех пор, пока эти операторы не закончатся. После этого дамп становится свободным от блокировки и не мешает читает и пишет по таблицам. Если утверждения обновления, сервер MySQL получает короткие (с точки зрения выполнения время) начальный период блокировки не должен быть заметен, даже со многими обновлениями.

Для восстановления на определенный момент времени (также известного как «Повторение транзакций», когда вам нужно восстановить старую резервное копирование и воспроизведение изменений, произошедших после этого резервного копирования), часто бывает полезно повернуть двоичный журнал (см. Раздел 5.4.4, «Двоичный журнал») или хотя бы знать двоичный журнал. координаты, которым соответствует дамп:

  оболочка> mysqldump --all-databases --master-data = 2> all_databases.sql  

Или:

  оболочка> mysqldump --all-databases --flush-logs --master-data = 2
              > все_базы данных.sql  

- master-data и - опционы на одну транзакцию могут использоваться одновременно, что обеспечивает удобный способ сделать онлайн-резервную копию, пригодную для использования до момента времени восстановление, если таблицы хранятся с использованием InnoDB накопитель.

Для получения дополнительной информации о создании резервных копий см. Раздел 7.2, «Методы резервного копирования базы данных» и Раздел 7.3, «Пример стратегии резервного копирования и восстановления».

Ограничения

mysqldump не выгружает performance_schema или sys схема по умолчанию. Чтобы сбросить любой из них, назовите их явно на командная строка. Вы также можете назвать их - базы данных вариант. Для performance_schema , также используйте - скиплок-столы вариант.

mysqldump не выгружает INFORMATION_SCHEMA схема.

mysqldump не делает дамп InnoDB СОЗДАТЬ TABLESPACE заявлений.

mysqldump не выгружает кластер NDB ndbinfo информационная база данных.

mysqldump включает операторы для воссоздания general_log и slow_query_log таблиц для дампов база данных mysql .Содержимое таблицы журнала не свалили.

Если у вас возникли проблемы с резервным копированием просмотров из-за недостаточного привилегии, см. Раздел 25.9, «Ограничения на просмотры» для обходной путь.

Как создать резервную копию и восстановить базы данных MySQL с помощью Mysqldump

В этом руководстве объясняется, как создавать резервные копии и восстанавливать базы данных MySQL или MariaDB из командной строки с помощью утилиты mysqldump.

Файлы резервных копий, создаваемые утилитой mysqldump, в основном представляют собой набор операторов SQL, которые можно использовать для воссоздания исходной базы данных.Команда mysqldump также может создавать файлы в форматах CSV и XML.

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

Если вы не создадите резервную копию баз данных, программная ошибка или отказ жесткого диска могут иметь катастрофические последствия. Чтобы сэкономить время и нервы, настоятельно рекомендуется принять меры предосторожности и регулярно создавать резервные копии баз данных MySQL.

Синтаксис команды Mysqldump #

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

Выражения утилиты mysqldump имеют следующий вид:

  mysqldump [options]> file.sql
  

Для использования команды mysqldump сервер MySQL должен быть доступен и запущен.

Резервное копирование одной базы данных MySQL #

Наиболее распространенный вариант использования инструмента mysqldump - резервное копирование одной базы данных.

Например, чтобы создать резервную копию базы данных с именем имя_базы_данных с помощью пользователя root и сохранить ее в файл с именем имя_базы_данных. sql запустите следующую команду:

  mysqldump -u root -p имя_базы_данных> имя_базы_данных.sql  

Вам будет предложено ввести пароль root. После успешной аутентификации начнется процесс дампа. В зависимости от размера базы данных процесс может занять некоторое время.

Если вы вошли в систему как тот же пользователь, которого используете для выполнения экспорта, и этот пользователь не требует пароля, вы можете опустить параметры -u и -p :

  mysqldump имя_базы_данных> имя_базы_данных.sql  

Резервное копирование нескольких баз данных MySQL #

Для резервного копирования нескольких баз данных MySQL с помощью одной команды вам необходимо использовать параметр --database , за которым следует список баз данных, которые вы хотите создать резервную копию. Каждое имя базы данных должно быть разделено пробелом.

  mysqldump -u root -p --databases имя_базы_данных_a имя_базы_данных_b> databases_a_b. sql  

Приведенная выше команда создаст файл дампа, содержащий обе базы данных.

Резервное копирование всех баз данных MySQL #

Используйте параметр --all-databases для резервного копирования всех баз данных MySQL:

  mysqldump -u root -p --all-databases> all_databases.sql  

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

Резервное копирование всех баз данных MySQL в отдельные файлы #

Утилита mysqldump не предоставляет возможности резервного копирования всех баз данных в отдельные файлы, но мы легко достигаем этого с помощью простого цикла bash FOR :

  для БД в $ (mysql -e 'показать базы данных' -s --skip-column-names); делать
    mysqldump $ DB> "$ DB.sql";
сделанный
  

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

Создание сжатой резервной копии базы данных MySQL #

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

  mysqldump имя_базы_данных | gzip> имя_базы_данных.sql.gz  

Создание резервной копии с отметкой времени #

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

  mysqldump имя_базы_данных> имя_базы_данных - $ (дата +% Y% m% d).sql  

Приведенная выше команда создаст файл следующего формата: имя_базы_данных-20180617.sql

Восстановление дампа MySQL #

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

  mysql имя_базы_данных  

В большинстве случаев вам потребуется создать базу данных для импорта. Если база данных уже существует, сначала ее нужно удалить.

В следующем примере первая команда создаст базу данных с именем имя_базы_данных , а затем импортирует дамп имя_базы_данных.sql в него:

  mysql -u root -p -e "создать базу данных имя_базы_данных";   mysql -u root -p имя_базы_данных <имя_базы_данных.sql  

Восстановить единую базу данных MySQL из полного дампа MySQL #

Если вы создали резервную копию всех своих баз данных с помощью параметра -all-databases и хотите восстановить одна база данных из файла резервной копии, который содержит несколько баз данных, используйте параметр --one-database , как показано ниже:

  mysql --one-database имя_базы_данных  

Экспорт и импорт базы данных MySQL одной командой #

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

  mysqldump -u root -p имя_базы_данных | mysql -h remote_host -u root -p имя_удаленной_базы_данных  

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

Автоматизация резервного копирования с помощью Cron #

Автоматизировать процесс резервного копирования баз данных так же просто, как создать задание cron, которое будет запускать команду mysqldump в указанное время.

Чтобы настроить автоматическое резервное копирование базы данных MySQL с помощью cronjob, выполните следующие действия:

  1. Создайте файл с именем .my.cnf в домашнем каталоге пользователя:

      sudo nano ~ /.my.cnf  

    Скопируйте и вставьте следующий текст в файл .my.cnf.

      [клиент]
    пользователь = dbuser
    пароль = dbpasswd  

    Не забудьте заменить dbuser и dbpasswd на пользователя базы данных и пароль пользователя.

  2. Ограничьте права доступа к файлу учетных данных, чтобы только ваш пользователь имел к нему доступ:

      chmod 600 ~ / . my.cnf  
  3. Создайте каталог для хранения резервных копий:

      mkdir ~ / db_backups  
  4. Откройте файл crontab пользователя:

      crontab -e  

    Добавьте следующее задание cron, которое будет создавать резервную копию базы данных с именем mydb каждый день в 3 часа ночи:

      0 3 * * * / usr / bin / mysqldump -u dbuser mydb> / home / username / db_backups / mydb - $ (date + \% Y \% m \% d).sql  

    Не забудьте заменить имя пользователя своим фактическим именем пользователя. Мы также избегаем знаков процента (% ), потому что они имеют особое значение в crontab.

Вы также можете создать другое задание cron для удаления любых резервных копий старше 30 дней:

  find / path / to / backups -type f -name "* .sql" -mtime +30 -delete
  

Конечно, вам необходимо настроить команду в соответствии с местоположением резервной копии и именами файлов. Чтобы узнать больше о команде find, ознакомьтесь с нашим руководством по поиску файлов в Linux с помощью командной строки.

Заключение №

В этом руководстве рассматриваются только основы, но оно должно стать хорошим началом для всех, кто хочет научиться создавать и восстанавливать базы данных MySQL из командной строки с помощью утилиты mysqldump.

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

Вы также можете проверить руководство о том, как сбросить пароль root MySQL, если вы его забыли.

Если у вас есть вопросы или отзывы, не стесняйтесь оставлять комментарии.

Дамп базы данных

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

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

  • Резервное копирование - для восстановления данных в случае аварии
  • Репликация - для настройки подчиненных серверов и повышения производительности приложений на основе баз данных и стабильность
  • Миграция - для проверки сложности перехода на другую систему управления базами данных
  • Эксперименты - для изменения дампа и тестирования различных конфигураций

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

Версия 8.2.1, от 15 января 2021 года. 112 МБ
Программное обеспечение для резервного копирования от ООО «Новософт». 249 долларов США за лицензию.

Версия Small Server нашей программы позволяет создавать дампы базы данных MySQL, а также выполнять резервное копирование Oracle, IBM DB2, MS SQL и других баз данных. Скачайте полнофункциональную пробную версию - это бесплатно!

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

  • Горячее резервное копирование. В коммерческих средах каждая минута простоя сервера может привести к прямым и косвенным убыткам в тысячи долларов. Технология горячего резервирования подразумевает, что резервное копирование может быть выполнено в режиме реального времени, без остановки сервера.
  • Легко редактируется. Дампы баз данных имеют очень четкий формат, который легко читать и редактировать. Каждый файл начинается с CREATE TABLE и продолжается рядом операторов INSERT, то есть содержит все необходимое для восстановления базы данных до новой установки СУБД.Простота формата позволяет использовать множество различных сценариев использования. Например, если вы используете MySQL, вы можете изменить механизм хранения базы данных на MyISAM , восстановить его на другой сервер и, таким образом, подготовить все для конфигурации репликации Master-to-Slave. Подробнее о репликации MySQL ...
  • Может использоваться для миграции. Все реляционные базы данных более или менее соответствуют стандарту SQL. Дампы базы данных содержат операторы SQL, которые должны без ошибок приниматься другими системами управления базами данных.Вы можете найти общие рекомендации по миграции с MySQL на другие СУБД на странице MySQL Recovery . ..

В следующем видеоуроке вы можете узнать, как создавать резервные копии и восстанавливать базы данных MySQL с помощью Handy Backup.

Примечание: Инструкции в этом видео предполагают, что на вашем компьютере уже установлена ​​программа Handy Backup. Если вы еще этого не сделали, скачайте его.

Наше программное обеспечение имеет ряд расширенных плагинов, предназначенных для резервного копирования и восстановления различных баз данных.Хотя все они поддерживают горячее резервное копирование, есть только один, MySQL Backup , который может создавать файлы дампа базы данных. Мы приглашаем вас попробовать его прямо сейчас - его легко настроить и использовать!

См. Также:

Свяжитесь с нами

[email protected]

Срок действия

  • Съемный жесткий диск
    «Съемный жесткий диск - это тип дисковой системы, в которой жесткие диски заключены в пластиковые или металлические картриджи, так что их можно снимать, как и другие. .. ”

Глоссарий по программному обеспечению резервного копирования

В текущем глоссарии объясняются различные термины, с которыми вы можете встретиться при работе с Handy Backup или другим программным обеспечением для резервного копирования.

Handy Backup - это утилита резервного копирования для серверов Windows и ПК, известная своей гибкостью и простотой использования.

Глоссарий содержит 172 термина. Текущий раздел Базы данных содержит 17 терминов.

Другие термины «Базы данных»

  • Oracle VSS Writer Service
    « VSS Writer Service - это дополнение к Windows Volume... »
  • Главный сервер MySQL
    « Главный сервер MySQL - это сервер в конфигурации репликации MySQL, на котором размещена основная база данных и который действует как основной источник данных. Всякий раз, когда ... »
  • InnoDB: определение InnoDB, целевое использование механизма хранения InnoDB
    «InnoDB - это механизм хранения данных, используемый по умолчанию в базе данных MySQL, начиная с версии 5. 5. Он уделяет большое внимание надежности и производительности, и ... »

Используйте mysqldump для резервного копирования MySQL или MariaDB

Обновлено , by Linode

Traducciones al Español

Estamos traduciendo nuestros guías y tutoriales al Español.Es posible que usted esté viendo una traducción generada automáticamente. Estamos trabajando con traductores profesionales para verificar las traducciones de nuestro sitio web. Este proyecto es un trabajo en curso.

MySQL и MariaDB включает Утилита mysqldump для упрощения процесса создания резервной копии базы данных или системы баз данных. Использование mysqldump создает логическую резервную копию . Вы можете использовать этот инструмент, только если ваш процесс базы данных доступен и работает.

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

Инструкции в этом руководстве применимы как к MySQL, так и к MariaDB. Для упрощения будет использовано имя MySQL.

Перед началом работы

  • Вам потребуется работающая установка MySQL или MariaDB, а также пользователь базы данных для выполнения резервного копирования. Для получения справки по установке см. Документация Linode MySQL.

  • Вам потребуется root-доступ к системе или учетная запись пользователя с привилегиями sudo .

Резервное копирование базы данных

Общий синтаксис команды mysqldump :

  mysqldump -u [имя пользователя] -p [имя_базы_данных]> [имя_файла] - $ (date +% F) .sql
  
  • mysqldump запрашивает пароль перед запуском процесса резервного копирования.
  • В зависимости от размера базы данных это может занять некоторое время.
  • Резервная копия базы данных будет создана в каталоге, в котором выполняется команда.
  • - $ (date +% F) добавляет метку времени к имени файла.

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

  • Создание резервной копии всей системы управления базами данных (СУБД):

      mysqldump --all-databases --single-transaction --quick --lock-tables = false> полная резервная копия - $ (дата +% F) .sql -u root -p
      
  • Создайте резервную копию определенной базы данных.Замените db1 именем базы данных, для которой требуется создать резервную копию:

      mysqldump -u username -p db1 --single-transaction --quick --lock-tables = false> db1-backup - $ (date + % F) .sql
      
  • Создайте резервную копию одной таблицы из любой базы данных. В приведенном ниже примере table1 экспортируется из базы данных db1 :

      mysqldump -u username -p --single-transaction --quick --lock-tables = false db1 table1> db1-table1 - $ ( дата +% F). sql
      

Вот разбивка опций команды mysqldump , использованных выше:

  • --single-transaction : Выполните инструкцию BEGIN SQL перед сбросом данных с сервера.
  • --quick : Принудительно выводить таблицы построчно. Это обеспечивает дополнительную безопасность для систем с небольшим объемом оперативной памяти и / или большими базами данных, где хранение таблиц в памяти может стать проблематичным.
  • --lock-tables = false : Не блокировать таблицы для сеанса резервного копирования.

Автоматическое резервное копирование с помощью cron

В / etc / crontab можно добавлять записи для регулярного планирования резервного копирования базы данных.

  1. Создайте файл для хранения учетных данных пользователя root MySQL, который будет выполнять резервное копирование. Обратите внимание, что системный пользователь, в домашнем каталоге которого хранится этот файл, может не иметь отношения к каким-либо пользователям MySQL.

    Файл: /home/example_user/.mylogin.cnf
      1
    2
    3
      
      [клиент]
    пользователь = корень
    password = пароль корневого пользователя MySQL  
  2. Ограничить права доступа к файлу учетных данных:

      chmod 600 / home / example_user /.mylogin.cnf
      
  3. Создайте файл задания cron. Ниже приведен пример задания cron для резервного копирования всей системы управления базами данных каждый день в 01:00:

    Файл: /etc/cron.daily/mysqldump
      1
      
      0 1 * * * / usr / bin / mysqldump --defaults-extra-file = / home / example_user / .my.cnf -u root --single-transaction --quick --lock-tables = false --all-databases> full-backup - $ (date + \% F) .sql  

    Дополнительные сведения о cron см. cron (8) и cron (5) справочные страницы.

Восстановить резервную копию

Общий синтаксис команды восстановления:

  mysql -u [имя пользователя] -p [имя базы данных] <[имя файла] .sql
  
  • Восстановить всю резервную копию СУБД. Вам будет предложено ввести пароль пользователя root MySQL:
    Это перезапишет все текущие данные в системе баз данных MySQL

      mysql -u root -p  
  • Восстановить единый дамп базы данных.Пустая или старая целевая база данных должна уже существовать для импорта данных, и пользователь MySQL, в котором вы запускаете команду, должен иметь доступ на запись в эту базу данных:

      mysql -u [username] -p db1  
  • Восстановите одну таблицу, у вас должна быть целевая база данных, готовая принимать данные:

      mysql -u dbadmin -p db1  

Эта страница была первоначально опубликована на

Как импортировать и экспортировать базы данных в MySQL или MariaDB

Автор выбрал Фонд бесплатных и открытых источников для получения пожертвования в рамках программы Write for DOnations.

Введение

Импорт и экспорт баз данных - обычная задача при разработке программного обеспечения. Вы можете использовать дампы данных для резервного копирования и восстановления вашей информации. Вы также можете использовать их для переноса данных на новый сервер или среду разработки.

В этом руководстве вы будете работать с дампами базы данных в MySQL или MariaDB (команды взаимозаменяемы).В частности, вы экспортируете базу данных, а затем импортируете эту базу данных из файла дампа.

Предварительные требования

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

Примечание: В качестве альтернативы ручной установке вы можете изучить приложение MySQL One-Click на DigitalOcean Marketplace.

Шаг 1. Экспорт базы данных MySQL или MariaDB

Консольная утилита mysqldump экспортирует базы данных в текстовые файлы SQL.Это упрощает перенос и перемещение баз данных. Вам понадобится имя вашей базы данных и учетные данные для учетной записи, права которой разрешают как минимум полный доступ только для чтения к базе данных.

Используйте mysqldump для экспорта базы данных:

  
  • mysqldump -u имя пользователя -p имя_базы_данных> data-dump.sql
  • имя пользователя - это имя пользователя, под которым вы можете войти в базу данных с
  • имя_базы_данных - имя базы данных для экспорта
  • дамп данных.sql - это файл в текущем каталоге, в котором хранится вывод.

Команда не выдаст визуального вывода, но вы можете проверить содержимое data-dump.sql , чтобы проверить, является ли это допустимым файлом дампа SQL.

Выполните следующую команду:

  

Верх файла должен выглядеть примерно так, показывая дамп MySQL для базы данных с именем имя_базы_данных .

  

Фрагмент дампа SQL

- Дамп MySQL 10.13 Дистриб 5.7.16, для Linux (x86_64) - - Хост: localhost База данных: имя_базы_данных - ------------------------------------------------ ------ - Версия сервера 5.7.16-0ubuntu0.16.04.1

Если в процессе экспорта возникнут какие-либо ошибки, mysqldump выведет их на экран.

Шаг 2. Импорт базы данных MySQL или MariaDB

Чтобы импортировать существующий файл дампа в MySQL или MariaDB, вам нужно будет создать новую базу данных. Эта база данных будет содержать импортированные данные.

Сначала войдите в MySQL как root или другой пользователь с достаточными привилегиями для создания новых баз данных:

  

Эта команда перенесет вас в командную строку оболочки MySQL. Затем создайте новую базу данных с помощью следующей команды. В этом примере новая база данных называется new_database :

  
  • СОЗДАТЬ БАЗУ ДАННЫХ new_database;

Вы увидите этот вывод, подтверждающий создание базы данных.

  

Выход

Запрос в порядке, затронута 1 строка (0,00 сек)

Затем выйдите из оболочки MySQL, нажав CTRL + D . Из обычной командной строки вы можете импортировать файл дампа с помощью следующей команды:

  
  • mysql -u имя пользователя -p new_database
  • имя пользователя - это имя пользователя, под которым вы можете войти в базу данных с
  • новая база данных - это имя только что созданной базы данных
  • дамп данных.sql - это файл дампа данных для импорта, расположенный в текущем каталоге

Если команда выполняется успешно, она не выдаст никаких результатов. Если во время процесса возникнут какие-либо ошибки, mysql вместо этого выведет их на терминал. Чтобы проверить, был ли импорт успешным, войдите в оболочку MySQL и проверьте данные. Выбор новой базы данных с USE new_database , а затем SHOW TABLES; или аналогичную команду, чтобы просмотреть некоторые данные.

Заключение

В этом руководстве вы создали дамп базы данных из базы данных MySQL или MariaDB. Затем вы импортировали этот дамп данных в новую базу данных. mysqldump имеет дополнительные настройки, которые можно использовать для изменения способа создания дампов данных системой. Вы можете узнать больше на официальной странице документации mysqldump.

Чтобы узнать больше о MySQL, посетите нашу страницу ресурсов MySQL.

Чтобы узнать больше о запросах MySQL, ознакомьтесь с нашим учебным пособием «Введение в запросы в MySQL».

Полное руководство по mysqldump


# Introduction

Всем сложным приложениям для хранения информации требуется какая-то база данных. MySQL - одна из самых популярных баз данных, используемых в Интернете. Большая часть времени и стоимости бизнеса вкладывается в базу данных и ее ключ для обеспечения безопасности этих данных. SnapShooter использует MySQL для управления и резервного копирования серверов и баз данных клиентов.

В этом руководстве мы подробно рассмотрим утилиту mysqldump. Мы рассмотрим способы создания резервной копии, а также общие ошибки, с которыми пользователи сталкиваются при ее использовании.


# Что такое mysqldump?

MySQL - это одна из наиболее широко используемых систем управления реляционными базами данных с открытым исходным кодом. Он используется для хранения чего угодно, от простого имени до галереи изображений или большого количества информации в сети. mysqldump - это часть пакета реляционной базы данных MySQL, которая используется для создания дампа (резервного копирования) базы данных или набора баз данных в простой текстовый файл. Текстовый файл - это набор операторов SQL, которые используются для восстановления базы данных в исходное состояние.

Обычно mysqldump используется для экспорта базы данных в файл резервной копии (как мы делаем в SnapShooter), а также для перемещения базы данных на другой хост. Команда mysqldump также генерирует вывод в XML, CSV и других текстовых форматах с разделителями.


# Basic Как использовать MySQL Dump

Базовый синтаксис команды Mysqldump показан ниже:

  mysqldump -u ИМЯ ПОЛЬЗОВАТЕЛЯ -p ПАРОЛЬ ИМЯ БД> DBBACKUP.sql
mysqldump -u ИМЯ ПОЛЬЗОВАТЕЛЯ -pPASSWORD --databases DB1 DB2 DB3.. > DBBACKUP.sql
mysqldump -u ИМЯ ПОЛЬЗОВАТЕЛЯ -pPASSWORD --all-databases> ALLDBBACKUP.sql  

# Краткое описание каждой опции показано ниже:

-u

Указывает ваше имя пользователя MySQL.

-п

Указывает ваш пароль MySQL.

DBNAME

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

DBBACKUP.sql

Имя файла резервной копии, который вы хотите создать.

-h

Указывает имя хоста сервера базы данных MySQL.

- Базы данных

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

-все-базы данных

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

--default-auth = плагин

Он используется для указания подключаемого модуля проверки подлинности на стороне клиента.

- сжатие

Используется для включения сжатия в протоколе сервер / клиент.

Используется для указания номера порта, используемого для подключения к MySQL.


# Как сделать резервную копию одной базы данных MySQL

Самый простой и легкий способ сделать резервную копию отдельной базы данных - выполнить следующую команду:

  mysqldump -u root -ppassword wpdb> wpdb_backup.sql  

Эта команда создаст дамп базы данных с именем wpdb и сгенерирует единственный файл с именем wpdb_backup.sql.


# Как сделать резервную копию нескольких баз данных MySQL

С помощью mysqldump вы также можете сделать резервную копию нескольких баз данных в один файл.

Например, создайте дамп базы данных с именем wpdb1, wpdb2 и wpdb3 и сгенерируйте один файл резервной копии с именем wpdb_backup3.sql, выполните следующую команду:

  mysqldump -u root -ppassword --databases wpdb1 wpdb2 wpdb3> wpdb_backup3.sql  

# Как сделать резервную копию всех баз данных MySQL

Mysqldump также позволяет создавать резервные копии всех баз данных в вашей системе.

Например, сделайте резервную копию всех баз данных и создайте один файл резервной копии с именем alldb_backup.sql, выполните следующую команду:

  mysqldump -u root -ppassword --all-databases> alldb_backup.sql  

# Как сделать резервную копию только структуры баз данных MySQL

Если вы хотите создать резервную копию структуры базы данных, вы должны использовать параметр –no-data в команде mysqldump.

Например, он генерирует резервную копию структуры базы данных базы данных wpdb, выполните следующую команду:

  mysqldump -u root -ppassword --no-data wpdb> wpdb_backup. sql  

# Как сделать резервную копию одной таблицы MySQL

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

Например, сгенерируйте резервную копию таблицы wptable базы данных wpdb, выполните следующую команду:

  mysqldump -u root -ppassword --no-data wpdb wptable> wpdbtable_backup.sql  

# Как сделать резервную копию MySQL без структуры

Если вы хотите создать резервную копию данных без структуры базы данных, вы должны использовать параметр –no-create-info в команде mysqldump.

Например, генерирует резервную копию данных базы данных wpdb, выполните следующую команду:

  mysqldump -u root -ppassword wpdb --no-create-info> wpdb_backup.sql  

# Basic Как импортировать mysqldump

Самый простой и легкий способ импортировать базу данных с помощью следующей команды:

  mysql -u root -ppassword wpdb  sql  

Примечание. Перед импортом базы данных вам потребуется создать пустую базу данных на целевой машине.

Вы также можете импортировать базу данных с помощью команды mysqlimport, если хотите восстановить базу данных, которая уже существует на целевой машине.

  mysqlimport -u root -ppassword wpdb  

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

  mysql -u корень -ppassword  

# MySQLDump что делает флаг --quick?

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

Используйте команду mysqldump с флагом --quick для считывания больших таблиц способом, который не требует больших объемов оперативной памяти для размещения всей таблицы в памяти. Это обеспечит дополнительную безопасность для систем с небольшим объемом оперативной памяти и большими базами данных.


# Можно ли использовать предложение Where с MySQLDump?

Конечно, легко использовать предложение where с командой mysqldump. Если у вас есть база данных с большим количеством таблиц, и каждая таблица содержит миллиард записей, и если вам нужны записи за определенный год, вы можете использовать предложение where с командой mysqldump.Предложение Where позволяет вам передать строку для условия и получить нужные записи.

Например, выберите все записи из таблицы с именем mytable и базы данных с именем wpdb, где значение поля date_created больше, чем '2018-02-01', выполните следующую команду:

  mysqldump -u root -ppassword wpdb --tables mytable --where = "date_created> '2018-02-01'"> wpdb_myrecord.sql  

# mysqldump Общие ошибки и исправления


# mysqldump: ошибка 2013: потеряно соединение с сервером mysql во время запроса при сбросе таблицы?

По-прежнему возникают проблемы с mysqldump? Позвольте нам автоматизировать резервное копирование mysql - получите бесплатную пробную версию сегодня

Вы должны увеличить значение max_allowed_packet, net_write_timeout, net_read_timeout и innodb_buffer_pool_size до соответствующих уровней, чтобы исправить ошибку.

Чтобы установить указанное выше значение, отредактируйте файл конфигурации MySQL:

нано /etc/mysql/my.cnf

Добавьте следующие строки в разделы [mysqld] и [mysqldump]:

  [mysqld]
innodb_buffer_pool_size = 100 млн
max_allowed_packet = 1024 МБ

[mysqldump]
max_allowed_packet = 1024 МБ
net_read_timeout = 3600
net_write_timeout = 3600  

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

перезапуск службы mysql или перезапуск systemctl mysqld


# mysqldump: error 2020: получил пакет больше, чем max_allowed_packet байтов при сбросе таблицы?

Когда база данных, которую вы пытаетесь сделать резервную копию, очень большая, а для параметра max_allowed_packet установлено низкое значение.Это вызовет указанную выше ошибку.

Вы можете исправить ошибку, отредактировав файл конфигурации MySQL:

нано /etc/mysql/my. cnf

Увеличьте значение max_allowed_packet в разделе [mysqld] и [mysqldump]

  [mysqld]
max_allowed_packet = желаемое значение

[mysqldump]
max_allowed_packet = желаемое значение  

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

перезапуск службы mysql или перезапуск systemctl mysqld


# mysqldump при использовании таблиц блокировки?

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

В первую очередь используется для защиты целостности данных при выгрузке таблиц MyISAM. Таблицы MyISAM требуют этой блокировки, потому что они не поддерживают транзакции.Если вы используете сочетание таблиц MyISAM и InnoDB, то выгрузите свои таблицы MyISAM отдельно от таблиц InnoDB, используя опцию --lock-tables .

InnoDB в настоящее время является механизмом хранения таблиц по умолчанию. Таким образом, вы можете пропустить параметр блокировки таблиц, используя --skip-lock-tables , чтобы остановить поведение, и --single-transaction , чтобы запустить mysqldump внутри транзакции.


# Не удалось выполнить 'show create table x' Таблица не существует (1146)

Хотите выполнять резервное копирование, игнорируя таблицы - получите бесплатную пробную версию сегодня

Несколько раз таблица удалялась в процессе резервного копирования.В этом случае вы можете ограничить определенные таблицы с помощью команды mysqldump, используя параметр --ignore-table.

Вам нужно будет указать имена базы данных и таблицы, как показано ниже:

  mysqldump -u root -ppassword dbname --ignore-table = tablename> db_backup.sql  

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

  mysqldump -u root -ppassword dbname --ignore-table = table1 --ignore-table = table2> db_backup. sql  

# mysqldump unknown database при выборе базы данных

Обычно эта ошибка возникает, когда вы указываете пароль в командной строке с флагом -p и между -p и паролем есть пробел.

Например, если вы хотите создать дамп базы данных с именем wpdb, используя пользователя «root» и пароль «your-password», и используйте следующую команду:

  Приведенная выше команда выдаст сообщение об ошибке "" Неизвестная база данных ваш-пароль "при выборе базы данных". 

На самом деле, вы должны указать пароль без пробела после ключа -p, как показано ниже:

  mysqldump -u root -pyour-password wpdb> wpdb_backup.sql  

# mysqldump получил ошибку 1044 при выборе базы данных

Вы получите эту ошибку, если попытаетесь сбросить базу данных с пользователем, у которого недостаточно прав для доступа к выбранной базе данных.

Чтобы исправить эту ошибку, назначьте пользователю соответствующие права доступа к базе данных.

Сначала войдите в MySQL с помощью следующей команды:

  mysql -u корень -p  

Введите пароль root для MySQL, затем предоставьте пользователю все права доступа к базе данных:

  ПРЕДОСТАВИТЬ ВСЕ ПРИВИЛЕГИИ НА wpdb. * TO 'your_user' @ 'localhost';  

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

  ПРИВИЛЕГИИ ПРОМЫВКИ;
ВЫХОД;  

# доступ mysqldump запрещен для пользователя при попытке подключения

У этой ошибки несколько причин.Наиболее частые причины этой ошибки перечислены ниже:


# 1. Неверная команда mysqldump

Одна из распространенных причин этой ошибки заключается в том, что вы используете неправильный формат команды mysqldump.

Например, общий синтаксис резервного копирования базы данных с помощью mysqldump показан ниже:

  mysqldump -u пользователь -ppasword база данных> database. sql  

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

  база данных mysqldump> база данных.sql  

Вы должны получить следующую ошибку:

  mysqldump: Получена ошибка: 1045: «Доступ запрещен для пользователя 'user' @ 'localhost' (с использованием пароля: NO)» при попытке подключения  

# 2. Неверные учетные данные пользователя

Вы также получите указанную выше ошибку, если используете неправильное имя пользователя и пароль при подключении к базе данных. Следовательно, MySQL не может проверить подлинность учетной записи и выдает эту ошибку.


# 3. Удаленному хосту не разрешено подключаться к базе данных

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

Чтобы исправить это, настройте сервер MySQL так, чтобы он разрешал соединения с удаленного хоста.


# Как сделать резервную копию большой базы данных mysqldump

Несколько полезных советов и приемов при использовании mysqldump для очень большой базы данных.


# 1. Как сжать вывод mysqldump

Рекомендуется сжать резервную копию базы данных в формате gzip, чтобы уменьшить размер базы данных.

Выполните следующую команду, чтобы выгрузить базу данных с именем wpdb и заархивировать ее одновременно:

  mysqldump -u root -ppassword wpdb | gzip> wpdb_backup.sql.gz  

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

  gunzip  

# 2. Как импортировать большую базу данных MySQL

Сначала войдите в оболочку MySQL, используя следующую команду:

  mysql -u корень -p  

Введите пароль root для MySQL, затем установите для длины сетевого буфера большое число байтов, как показано ниже:

  установить глобальную net_buffer_length = 1000000;  

Далее также установите максимально допустимый размер пакета на большое число байтов, как показано ниже:

  установить глобальный max_allowed_packet = 1000000000;  

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

  НАБОР foreign_key_checks = 0;
УСТАНОВИТЬ UNIQUE_CHECKS = 0;
УСТАНОВИТЬ АВТОКОММИТ = 0;  

Затем импортируйте файл дампа с помощью следующей команды:

  источник / резервный путь / wpdb. sql  

Когда вы закончите, включите проверку внешнего ключа с помощью следующей команды:

  УСТАНОВИТЬ foreign_key_checks = 1;
УСТАНОВИТЬ UNIQUE_CHECKS = 1;
УСТАНОВИТЬ АВТОКОММИТ = 1;  

# 3. Разделить базы данных в отдельные файлы данных

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

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

  mysql -u root -ppassword -A --skip-column-names -e "ВЫБРАТЬ имя_схемы ИЗ
information_schema.schemata WHERE schema_name NOT IN ('information_schema', 'mysql') ">
db_list.txt  

Когда у вас есть список баз данных, вы можете запустить цикл с помощью команды mysqldump через список, как показано ниже:

  для БД в `cat db_list.txt`
делать
mysqldump -u root -ppassword --hex-blob --routines --triggers $ {DB} | gzip> $ {DB} .sql.gz &
сделанный
ждать  

# mysqldump без пароля

Когда вы создаете дамп базы данных с помощью mysqldump, вам нужно будет указать имя пользователя и пароль с помощью команды. Если вы не хотите каждый раз указывать имя пользователя и пароль с помощью команды mysqldump, вам просто нужно создать файл в своем домашнем каталоге с учетными данными MySQL. Это отключит запрос пароля mysqldump.

Для этого создайте в домашнем каталоге новый файл:

  нано ~ / mysql.txt  

Добавьте свои корневые учетные данные MySQL, как показано ниже:

  [mysqldump]
пользователь = корень
пароль = пароль  

Сохраните и закройте файл, когда закончите.

Теперь вы можете указать свой файл учетных данных MySQL, используя параметр --defaults-file, как показано ниже:

  mysqldump --defaults-file = ~ / mysql.txt wpdb> wpdb_backup.sql  
.

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Theme: Overlay by Kaira Extra Text
Cape Town, South Africa