Что такое mysqldump и как его использовать?

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

Для чего используется mysqldump?

Инструмент mysqldump поможет вам разобраться как с компрометацией сервера, так и с ситуациями миграции. Его основная функция — взять базу данных MySQL и «выгрузить» ее в виде текстового файла, а не просто любого текстового файла — файл представляет собой набор операторов SQL. Эти операторы при выполнении восстанавливают вашу базу данных до того состояния, в котором она находилась при выполнении дампа.

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

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

  • Горячее копирование базы данных из MySQL Enterprise — отличный способ для создания таких резервных копий, если вы не против ценника Enterprise.
  • Копирование каталогов данных базы данных может оказаться непростым делом, если вы перемещаетесь между операционными системами, поскольку их назначение будет другим.
  • Экспорт в текстовый файл с разделителями даст вам содержимое, но вам придется пересоздать структуру самостоятельно. И тебе лучше понять это правильно!
  • Вы часто можете создавать резервные копии баз данных из программ с графическим интерфейсом, таких как MySQL Workbench. Но это ручной процесс, то есть не то, что вы можете написать или включить в пакетное задание.

Установите инструмент mysqldump

Для Windows, ознакомьтесь с нашими инструкциями по установке MySQL на Windows 7 (процесс установки все еще очень похож на Windows 10). Аналогично на macOS, ознакомьтесь с нашими инструкциями по установке MySQL на macOS 10.7 (опять же, более старый, но все еще применимый). Пользователи систем Linux на основе Ubuntu могут использовать следующую команду для установки клиента и утилит MySQL:

sudo apt установить mysql-клиент

Извлечь дамп MySQL

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

mysqldump -h [имя или IP-адрес вашего хоста БД] -u [имя пользователя БД] -p [имя базы данных]> db_backup.sql

Давайте немного разберем эту команду:

  • «-час»: Этот флаг является базой данных хозяин. Это может быть полное имя хоста (например, myhost.domain.com) или IP-адрес. Вы также можете оставить это поле пустым, если вы используете его на том же хосте, что и сервер MySQL.
  • «-U»: Твой имя пользователя.
  • «-п»: Если вы правильно обеспечили установку MySQL, вам понадобится пароль подключиться. Этот флаг без аргументов попросит вас ввести пароль при выполнении команды. Иногда полезно указать свой пароль непосредственно в качестве аргумента этого флага, например, в сценарии резервного копирования. Но по подсказке вы не должны этого делать, потому что, если кто-то получит доступ к вашему компьютеру, он сможет получить этот пароль в истории ваших команд.
  • «> db_backup.sql»: Эта последняя часть говорит туздЫшпр направить весь свой вывод в файл. Обычно команда выводит все напрямую на консоль, а это означает, что вы увидите, как пролетает куча операторов SQL. Но вместо этого > Символ — это знак, который вместо этого направляет все эти вещи в указанный текстовый файл. И если этот файл не существует, он будет создан автоматически.

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

    Содержимое файла mysqldump

    Файл разделен на разделы. Первый раздел настраивает таблицу для комментариев WordPress. Затем второй раздел воссоздает содержимое (то есть записи комментариев), которое было в этих таблицах. Когда вы снова начнете импортировать дамп MySQL, команда будет работать с файлом, выполняя операторы и перестраивая вашу базу данных так, как это было. Так как ты это делаешь? Давайте взглянем.

    Импортируйте файл дампа MySQL

    Прежде чем вы сможете импортировать файл дампа, вам понадобится база данных, которая уже создана, а также ее действительные имя пользователя и пароль. Вы также должны иметь все разрешения для базы данных. (Строго говоря, вам не нужно ГРАНТ разрешение, но легче просто предоставить их всем.)

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

    Чтобы повторно импортировать ваши данные, войдите на сервер MySQL с MySQL команда. Тип использовать [имя базы данных] в приглашении, подставив соответствующее имя БД. Войти источник [имя файла], подставив имя файла дампа, который вы взяли ранее.

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

    Импортирование файла mysqldump в новую базу данных

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

    Сравнение двух баз данных' Dump Files

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

    Ссылка на основную публикацию