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

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

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

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

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

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

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

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

Если вы заинтересованы в этой статье, скорее всего, у вас уже установлен MySQL. Если это так, хорошие новости – у вас уже есть mysqldump ! Если нет, вы можете просто установить MySQL стандартным для вашей операционной системы способом.

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

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

Извлечение дампа MySQL

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

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

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

  • “- h” . Этот флаг является базой данных хоста . Это может быть полное имя хоста (например, myhost.domain.com) или IP-адрес. Вы также можете оставить это поле пустым, если вы используете его на том же хосте, что и сервер MySQL.
  • “- u” . Как уже упоминалось, это ваше имя пользователя .
  • “- p” . Если вы правильно обеспечили безопасность установки MySQL, вам потребуется пароль для подключения. Этот флаг без аргументов попросит вас ввести пароль при выполнении команды. Иногда полезно указать свой пароль непосредственно в качестве аргумента этого флага, например, в сценарии резервного копирования. Но по подсказке вы не должны этого делать, потому что, если кто-то получит доступ к вашему компьютеру, он сможет получить этот пароль в истории ваших команд.
  • “> db_backup.sql” . Эта последняя часть говорит mysqldump направить весь свой вывод в файл. Обычно команда выводит все напрямую на консоль, а это означает, что вы увидите, как пролетает куча операторов SQL. Но вместо этого символ *> * является знаком, чтобы вместо этого вбрасывать все эти вещи в названный текстовый файл. И если этот файл не существует, он будет создан автоматически.

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

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

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

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

Чтобы повторно импортировать ваши данные, выполните следующие действия:

  1. Войдите на сервер MySQL с помощью команды mysql .
  2. Введите use [database name] в командной строке, подставив соответствующее имя базы данных.
  3. Введите source [filename] , подставив имя файла дампа, который вы взяли ранее.

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

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

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

Оцените статью
Solutics.ru
Добавить комментарий