Skip to main content

Čo je mysqldump a ako ho môžem použiť?

Anonim

Ako jedna z popredných voľne dostupných databáz je MySQL populárnou voľbou pre všetky druhy webových aplikácií. Byť vystavený internetu, vaša aplikácia je samozrejme vystavená škodlivým útokom. Ak je váš server ohrozený, v najlepšom prípade budete musieť aplikáciu opätovne nainštalovať. v najhoršom prípade môžete úplne stratiť svoje údaje. Taktiež sa nakoniec ocitnete v situácii, keď potrebujete migrovať databázu z jedného servera na druhý.

Čo je mysqldump používaný?

mysqldump nástroj pre obe tieto situácie. Základnou funkciou je prevziať databázu MySQL a "vyložiť" ju ako textový súbor. Ale nie len akýkoľvek textový súbor … súbor je a množina príkazov SQL, Tieto príkazy, po ich vykonaní, opätovne vytvoria vašu databázu do presného stavu, v ktorom sa nachádzali, keď vykonali výpis.

Takže môžete použiť mysqldump exportovať databázu. Tieto môžu byť na účely zálohovania, alebo preto, že presúvate databázu na nový hostiteľ. V oboch prípadoch budete v určitom okamihu import textový súbor späť do databázového servera MySQL. Spustí všetky príkazy SQL v súbore, ktorý obnoví DB do pôvodného stavu. Táto časť v skutočnosti nepoužíva mysqldump príkaz, ale to by nebolo možné aj bez tohto nástroja!

Dokumenty MySQL uvádzajú ďalšie spôsoby zálohovania, ale všetky majú svoje vlastné nevýhody:

  • Hotcopying DB z MySQL Enterprise je skvelý spôsob, ako dosiahnuť tieto zálohy … ak vám nevadí cena Enterprise.
  • Kopírovanie adresárov údajov databázy DB môže byť zložité, ak sa pohybujete medzi operačnými systémami, pretože ich ciele budú odlišné.
  • Export do oddeleného textového súboru vám poskytne obsah, ale budete musieť štruktúru znovu vytvoriť sami. A radšej si to dobre …
  • Často môžete zálohovať databázy z programov GUI, ako je MySQL Workbench. Ale je to manuálny proces, t. J. Niečo, čo môžete skriptovať alebo zahrnúť do dávkovej práce.

Inštalácia nástroja mysqldump

Ak máte záujem o tento článok, je pravdepodobné, že už máte nainštalovaný MySQL. Ak je to tak, dobré správy - už máte mysqldump! Ak nie, jednoducho môžete nainštalovať MySQL štandardným spôsobom pre váš operačný systém.

V systéme Windows nájdete naše pokyny na inštaláciu MySQL na Windows 7 (proces inštalácie je stále rovnaký). Podobne v systéme macOS nájdete naše pokyny na inštaláciu MySQL na macOS 10.7 (znova, staršie, ale stále aplikovateľné). Užívatelia systémov Linux založených na Ubuntu môžu na inštaláciu klienta a pomôcok MySQL použiť nasledujúci príkaz:

sudo apt nainštalujte mysql-client

Extrakcia MySQL Dump

Po nainštalovaní môžete použiť mysqldump aby ste získali úplnú zálohu databázy.

mysqldump -h názov vášho DB hostiteľa alebo IP -u meno používateľa DB -p názov databázy> db_backup.sql

Poďme trochu rozbiť tento príkaz:

  • "-H": Tento príznak je databáza hostiteľ, Môže to byť úplné meno hostiteľa (napríklad myhost.domain.com) alebo IP adresa. Môžete tiež nechať tento prázdny, ak ho spúšťate na tom istom hostiteľovi ako server MySQL.
  • "-U": Ako bolo spomenuté, toto je vaše užívateľské meno.
  • "-P": Ak máte správne zabezpečenú inštaláciu MySQL, potrebujete a heslo spojiť. Tento príznak, ktorý neobsahuje žiadne argumenty, vás pri spustení príkazu zobrazí výzvu na zadanie hesla. Niekedy je užitočné poskytnúť svoje heslo priamo ako argument pre túto príznak, napríklad v zálohovacom skripte. Ale na výzvu by ste nemali, pretože ak by niekto získal prístup k vášmu počítaču, mohli by dostať toto heslo do vašej histórie príkazov.
  • "> db_backup.sql": Táto posledná časť hovorí mysqldump aby nasmeroval celý svoj výstup do súboru. Za normálnych okolností by príkaz vygeneroval všetko priamo do konzoly, čo znamená, že vidíte veľa príkazov SQL lietajúcich. Symbol *> * namiesto toho je namiesto toho znamenie, aby sa všetky tieto veci spustili do menovaného textového súboru. A ak tento súbor neexistuje, bude vytvorený automaticky.

Po dokončení bude mať súbor .SQL. Toto je len textový súbor obsahujúci príkazy SQL. Môžete ho otvoriť v akomkoľvek textovom editore, aby ste mohli skontrolovať obsah. Pri pohľade na export z databázy WordPress môžete vidieť, ako sú tieto súbory dohromady.

Súbor je rozdelený na sekcie. Na obrázku vyššie môžeme vidieť prvú časť nastavenia tabuľky pre komentáre WordPress. Druhá časť potom obnoví obsah (t. J. Poznámkové záznamy), ktorý bol v týchto tabuľkách. Keď prejdete na opätovné importovanie výpisu služby MySQL, príkaz bude fungovať prostredníctvom súboru, vykonaním vyhlásení a opätovným budovaním databázy tak, ako to bolo. Tak ako to robíte? Pozrime sa.

Import súboru s výpisom MySQL

Skôr ako to budete môcť urobiť, budete potrebovať databázu, ktorá už bola vytvorená a máte platné používateľské meno a heslo. Mali by ste mať všetky povolenia pre databázu. (Presne povedané nepotrebujete GRANT povolenie, ale je jednoduchšie len udeliť všetkým.) Podrobnosti o oprávneniach databázy nájdete v tomto článku.

Na opätovné importovanie údajov postupujte nasledovne:

  1. Prihláste sa na MySQL server pomocou mysql Príkaz.
  2. typ používať názov databázy na výzvu, nahradením príslušného názvu DB.
  3. vstúpiť zdroj názov súboru, nahrádza názov súboru s výpisom, ktorý ste predtým použili.

Keď skončíte, uvidíte dlhý zoznam správ, ktoré konštatujú, že príkazy SQL sa vykonávajú. Dávajte pozor na chyby, ale ak máte správne povolenia, mali by ste byť v poriadku, pretože je to prázdna databáza.

Po dokončení procesu budete mať duplikát pôvodnej databázy. Môžete to overiť vykonaním ďalšieho výpisu a porovnaním dvoch výstupov. Dokonalý textový editor to dokáže pre vás, alebo vyhradený nástroj * diff *, ako je ten, ktorý je znázornený na obrázku nižšie:

Medzi týmito súbormi sú len dva rozdiely, ako sú červené čiary v hornej a dolnej časti pravého posúvača. Prvý je riadok, ktorý obsahuje názov databázy a očakávame, že to bude iný, pretože sme ich pomenovali inak. Druhá, celá cesta na konci, je časová pečiatka súboru výpisu. A my tiež očakávame, že to bude inak, pretože sme vytvorili druhú databázu po prvej. V opačnom prípade sú súbory úplne rovnaké, čo znamená, že databázy, ktoré ich vygenerovali, sú rovnako dobre!