Skip to main content

Kaj je mysqldump in kako ga uporabim?

Anonim

Kot ena od vodilnih prosto dostopnih podatkovnih baz MySQL je priljubljena izbira za vse vrste spletnih aplikacij. Če ste izpostavljeni internetu, je vaša aplikacija seveda izpostavljena zlonamernim napadom. Če je vaš strežnik ogrožen, v najboljšem primeru boste morali ponovno namestiti svojo aplikacijo; v najslabšem primeru boste lahko v celoti izgubili podatke. Sčasoma boste tudi v položaju, v katerem morate migrirati bazo podatkov iz enega strežnika v drugega.

Za kaj se uporablja mysqldump?

The mysqldump orodje ste obkrožili za obe situaciji. Osnovna funkcija je, da vzamemo bazo podatkov MySQL in jo "izčrpamo" kot besedilno datoteko. Ampak ne le poljubna besedilna datoteka … datoteka je a niz stavkov SQL. Te izjave bodo, ko se izvršijo, ponovno zgradile svojo bazo podatkov v natančno stanje, v katerem je bilo, ko ste izvedli odlagališče.

Torej lahko uporabite mysqldump izvoziti bazo podatkov. To so lahko za varnostne kopije ali ker premikate bazo podatkov v nov gostitelj. V vsakem primeru boste v določenem trenutku uvoz besedilno datoteko nazaj v strežnik baz podatkov MySQL. Izvedel bo vse stavke SQL v datoteki, ki obnovijo vašo DB v prvotno stanje. Ta del dejansko ne uporablja mysqldump ukaz, vendar brez te pripomočke ne bi bilo mogoče!

Dokumenti MySQL naštevajo druge načine izdelave varnostnih kopij, vendar imajo vsi lasten pomanjkljivosti:

  • Hotkopiranje DB iz MySQL Enterprise je odličen način za doseganje teh varnostnih kopij … če vam ne moti oznake podjetja.
  • Kopiranje podatkovnih imenikov DB je lahko težavno, če se premikate po operacijskih sistemih, saj bodo njihovi cilji drugačni.
  • Izvoz v razmejeno besedilno datoteko vam bo dala vsebino, vendar boste morali sami znova ustvariti strukturo. In bolje bi bilo, da ga prav …
  • Datoteke lahko pogosto varnostno kopirate iz programov GUI, kot je MySQL Workbench. Toda to je ročni postopek, to je ne nekaj, kar lahko skriptirate ali vključite v serijsko delo.

Namestitev orodja mysqldump

Če vas zanima ta članek, verjetno imate nameščen MySQL. Če je tako, dobra novica - že imate mysqldump! Če ne, lahko preprosto namestite MySQL na standarden način za vaš operacijski sistem.

V operacijskem sistemu Windows preverite naša navodila tukaj za namestitev MySQL v operacijskem sistemu Windows 7 (postopek namestitve je še vedno zelo enak). Podobno tudi na macOS glejte navodila za namestitev MySQLa na macOS 10.7 (znova, starejša, vendar še vedno veljavna). Uporabniki Ubuntu-based Linux sistemov lahko uporabijo naslednji ukaz za namestitev odjemalca MySQL in pripomočkov:

sudo apt namestite mysql-client

Izvleček MySQL Dump

Ko je nameščen, lahko uporabite mysqldump da dobite popolno varnostno kopijo baze podatkov.

mysqldump -h ime gostitelja DB ali IP -u ime uporabnika DB -p ime baze podatkov> db_backup.sql

Razbijmo ta ukaz nekoliko:

  • "-h": Ta zastava je baza podatkov gostitelj. Lahko je polno ime gostitelja (npr. Myhost.domain.com) ali naslov IP. To lahko pustite tudi prazno, če ga poganjate na istem gostitelju kot strežniku MySQL.
  • "-u": Kot je omenjeno, je to tvoje uporabniško ime.
  • "-p": Če ste pravilno namestili MySQL namestitev, boste potrebovali geslo povezati. Ta zastava brez argumenta vas bo pri izvajanju ukaza pozvala k geslu. Včasih je koristno, da vaše geslo neposredno navedete kot argument za to zastavo, na primer v rezervnem skriptu. Ampak na poziv, ne smete, ker če bi nekdo pridobil dostop do vašega računalnika, lahko to geslo dobijo v zgodovini ukazov.
  • "> db_backup.sql": Ta zadnji del govori mysqldump da vse svoje rezultate usmeri v datoteko. Običajno bi ukaz naredil vse, kar je neposredno na konzolo, kar pomeni, da bi videli, da bo število stavkov SQL preletelo. Namesto tega je simbol *> * znak, ki namesto tega vnese vse te stvari v imenovano besedilno datoteko. Če ta datoteka ne obstaja, se bo samodejno ustvarila.

Ko je končano, boste imeli datoteko .SQL. To je samo besedilna datoteka, ki vsebuje stavke SQL. Lahko ga odprete v kateremkoli urejevalniku besedila, da preverite vsebino. Če pogledamo izvoz iz baze podatkov WordPress, si lahko ogledate, kako so te datoteke združene.

Datoteka je razdeljena na dele. V zgornji sliki lahko vidimo, da prvi del postavlja tabelo za komentarje programa WordPress. V drugem razdelku je nato ustvarjena vsebina (to je zapis zapisov komentarjev), ki je bila v teh tabelah. Ko enkrat znova uvozite vašo zbirko MySQL, bo ukaz deloval prek datoteke, izvedel izjave in ponovno zgradil svojo podatkovno bazo tako, kot je bilo. Torej, kako to storite? Oglejmo si.

Uvažanje datotečne datoteke MySQL

Preden to omogočite, boste potrebovali že ustvarjeno bazo podatkov in imeli veljavno uporabniško ime in geslo. Imeti bi morali tudi vsa dovoljenja za bazo podatkov. (Strogo rečeno vam ni treba GRANT dovoljenje, vendar jim je vseeno lažje.) Podrobnosti o dovoljenjih za baze podatkov najdete v tem članku.

Če želite znova uvoziti podatke, upoštevajte ta navodila:

  1. Prijavite se v MySQL strežnik z mysql ukaz.
  2. Tip uporabite ime baze podatkov na poziv, ki nadomesti ustrezno ime DB.
  3. Vnesite vir ime datoteke, ki nadomesti ime datoteke, ki ste jo prej dali.

Ko končate, boste videli dolg seznam sporočil, ki bodo opozorili, da se izjave SQL izvajajo. Bodite pozorni na napake, vendar če imate potrebna dovoljenja, bi morali biti v redu, saj je prazna baza podatkov.

Ko bo proces končan, boste imeli podvojeno izvirno bazo podatkov. To lahko preverite tako, da naredite še en dump in primerjate oba izhoda. Primeren urejevalnik besedil bo to lahko naredil za vas, ali orodje * diff *, kot je prikazano na spodnji sliki:

Med tema datotekama sta samo dve razliki, ki jih predstavljata rdeča vrstica na zgornji in spodnji strani desne drsne vrstice. Prva je črta, ki vsebuje ime baze podatkov, in pričakujemo, da bo drugačen, ker smo jih drugače poimenovali. Drugi, vse na koncu, je časovni žig za datoteko za odlaganje. Pričakujemo pa tudi, da bo to drugačen, saj smo ponovno ustvarili drugo bazo podatkov po prvem. V nasprotnem primeru so datoteke popolnoma enake, kar pomeni, da so baze podatkov, ki so jih ustvarile, tudi enake!