Skip to main content

Какво е mysqldump и как да го използвам?

4 седмици до ОЛИМПИЯ UK - Какво е менюто ми? (Април 2025)

4 седмици до ОЛИМПИЯ UK - Какво е менюто ми? (Април 2025)
Anonim

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

За какво се използва MySQL?

Най- mysqldump инструмент сте покрили и в двете ситуации. Основната функция е да се вземе MySQL база данни и да се "изхвърли" като текстов файл. Но не само всеки текстов файл … файлът е a набор от SQL изрази, Тези изявления, когато бъдат изпълнени, ще преконструират базата ви данни до точното състояние, в което се намира, когато изпълните дупката.

Така че можете да използвате mysqldump да извършва износ на база данни. Те могат да бъдат за целите на архивиране или защото премествате базата данни в нов хост. И в двата случая, в един момент внос текстовия файл обратно в сървър на база данни MySQL. Той ще изпълни всички SQL изрази във файла, които възстановяват вашия DB в първоначалното му състояние. Тази част всъщност не използва mysqldump команда, но няма да е възможно без тази полезност!

Документите в MySQL изброяват други методи за създаване на резервни копия, но всички те имат свои собствени недостатъци:

  • Hotcopying DB от MySQL Enterprise е чудесен начин да постигнете тези архиви … ако нямате нищо против цената на Enterprise.
  • Копирането на директории с данни на DB може да бъде трудно, ако се движите между операционните системи, тъй като техните местоназначения ще бъдат различни.
  • Експортирането в ограничен текстов файл ще ви даде съдържанието, но ще трябва да пресъздадете самата структура. И по-добре да го направите точно …
  • Често можете да архивирате бази данни от графични програми като MySQL Workbench. Но това е ръчен процес, т.е. не е нещо, което можете да скриете или включите в партидна работа.

Инсталиране на инструмента mysqldump

Ако се интересувате от тази статия, вероятно имате вече инсталирана MySQL. Ако това е така, добра новина - вече имате mysqldump! Ако не, можете просто да инсталирате MySQL по стандартния начин за вашата операционна система.

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

sudo apt инсталирате mysql-клиент

Извличане на MySQL Dump

Веднъж инсталиран, можете да го използвате mysqldump за да получите пълен архив на базата данни.

mysqldump -h името на вашия хост на DB или IP -u име на DB потребител -p името на базата данни> db_backup.sql

Нека да разчупим малко тази команда:

  • "-H": Този флаг е базата данни домакин, То може да бъде пълно име на хост (например myhost.domain.com) или IP адрес. Можете също така да оставите това празно, ако го пускате на същия хост като MySQL сървъра.
  • "-U": Както споменахме, това е вашето потребителско име.
  • "-P": Ако сте правилно защитени вашата MySQL инсталация, ще ви е необходима парола за да се свържете. Това флагче без аргумент ще ви подскаже за парола, когато изпълнявате командата. Понякога е полезно да въведете паролата си директно като аргумент към това знаме, например в скрипт за резервно копие. Но на подканата, не трябва, защото ако някой получи достъп до компютъра ви, може да получи тази парола в историята на командите ви.
  • "> db_backup.sql": Тази последна част казва mysqldump за да насочи цялата си продукция към файл. Обикновено командата ще доведе всичко директно до конзолата, което означава, че ще видите множество SQL извлечения, които летят. Но вместо това символът *> * е знак, който вместо това да вкара всички тези неща в имената на текстовия файл. И ако този файл не съществува, той ще бъде създаден автоматично.

Когато приключите, ще имате .SQL файл. Това е само текстов файл, съдържащ SQL изрази. Можете да го отворите във всеки текстов редактор, за да инспектирате съдържанието. Когато разглеждате износа от базата данни на WordPress, можете да видите как тези файлове са събрани.

Файлът е разделен на секции. В горното изображение можем да видим първата секция, която създава таблицата за коментари в WordPress. Вторият раздел след това пресъздава съдържанието (т.е. коментарите), което е било в тези таблици. Когато отидете отново да импортирате вашето MySQL дъмп отново, командата ще работи чрез файла, изпълнявайки изявленията и повторно изграждане на вашата база данни точно така. Как да го направите? Нека да погледнем.

Импортиране на MySQL Dump File

Преди да можете да направите това, ще ви е необходима вече създадена база данни и имате валидно потребителско име и парола. Трябва също така да имате всички разрешения за базата данни. (Строго погледнато, нямате нужда от Дарение разрешение, но е по-лесно просто да ги дадете.) Можете да намерите подробности за разрешенията за бази данни в тази статия.

За да импортирате отново данните си, изпълнете следните стъпки:

  1. Влезте в MySQL сървъра с MySQL команда.
  2. Тип използвайте име на базата данни по бързината, замествайки съответното име на ПБ.
  3. Въведете източник име на файл, замествайки името на файла с дъмп, който сте използвали по-рано.

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

След като процесът приключи, ще имате дубликат на оригиналната си база данни. Можете да проверите това, като направите друга дъмп и сравнявате двата изхода. Приличен текстов редактор ще бъде в състояние да направи това за вас, или специален инструмент * diff * като този, показан на изображението по-долу:

Има само две разлики между тези файлове, представени с червени линии в горната и долната част на дясната лента за превъртане. Първият е редът, който съдържа името на базата данни и очакваме това да е различно, защото ги наименувахме по различен начин. Второто, в края на краищата, е клеймото за файла с дъмп. И ние също така очакваме това да бъде различно, тъй като пресъздадохме втората база данни след първата. В противен случай файловете са същите, което означава, че базите данни, които ги генерират, са също така!