Skip to main content

Kas yra mysqldump ir kaip jį naudoti?

Anonim

Kaip viena iš pirmaujančių laisvai prieinamų duomenų bazių, MySQL yra populiarus visų rūšių interneto programų pasirinkimas. Kilus internetui, jūsų programa, žinoma, yra paveikta kenkėjiškų išpuolių. Jei jūsų serveris yra pažeistas, geriausiu atveju turėsite iš naujo įdiegti savo programą; blogiausiu atveju galite visiškai prarasti savo duomenis. Be to, jūs galų gale susidursite su situacija, kai turėsite perkelti duomenų bazę iš vieno serverio į kitą.

Kas yra mysqldump naudojamas?

The mysqldump įrankis yra padengtas abiem atvejais. Tai yra pagrindinė funkcija - "MySQL" duomenų bazė "išmesti" kaip teksto failas. Bet ne tik bet koks teksto failas … failas yra a SQL sakinių rinkinys. Šie teiginiai, kai jie bus įvykdyti, iš naujo sukonstruos jūsų duomenų bazę iki tikslios būklės, kai ją vykdėte atlikdami iškrovimą.

Taigi galite naudoti mysqldump eksportuoti duomenų bazę. Tai gali būti dėl atsarginių kopijų kūrimo arba dėl to, kad perkeliama duomenų bazė į naują kompiuterį. Bet kuriuo atveju jūs tam tikru momentu importas Teksto failas grąžinamas į MySQL duomenų bazės serverį. Bus įvykdyti visi failo SQL teiginiai, kurie atstato jūsų DB į pradinę būseną. Ši dalis iš tikrųjų nenaudoja mysqldump komandą, bet tai nebūtų įmanoma be šio naudingumo!

MySQL dokumentai nurodo kitus atsarginių kopijų kūrimo būdus, tačiau šie visi turi savo trūkumų:

  • "MySQL Enterprise" DB kopijavimas yra puikus būdas pasiekti šias atsargines kopijas … jei neprieštaraujate "Enterprise" kainų žymei.
  • Kopijuoti DB duomenų katalogus gali būti sudėtinga, jei persikeliate į visas operacines sistemas, nes jų paskirties vietos bus skirtingos.
  • Eksportuojant į apribotą tekstinį failą suteiksite turinį, bet turėsite patys sukurti naują struktūrą. Ir tu geriau, kad tai teisingai …
  • Dažnai galite atsargines duomenų bazes kurti iš GUI programų, tokių kaip "MySQL Workbench". Tačiau tai yra neautomatinis procesas, t. Y. Ne kažkas, kurį galite naudoti scenarijui arba įtraukti į serijinį darbą.

"Mysqldump" įrankio diegimas

Jei jus domina šis straipsnis, tikėtina, kad jau turite įdiegtą "MySQL". Jei taip, geros naujienos - jau turite mysqldump! Jei ne, galite paprasčiausiai įdiegti "MySQL" savo operacinei sistemai.

Jei naudojate "Windows", patikrinkite čia pateiktas instrukcijas, kaip įdiegti "MySQL" sistemoje "Windows 7" (įdiegimo procesas vis dar yra toks pats). Panašiai ir "macOS", žr. Mūsų nurodymus įdiegti "MySQL" į "macOS 10.7" (dar kartą senesni, bet vis tiek taikomi). Ubuntu pagrįstų "Linux" sistemų vartotojai gali naudoti šią komandą, norėdami įdiegti "MySQL" klientą ir komunalines paslaugas:

sudo apt install mysql-client

Ekstrakto MySQL Dump

Įdiegus galite naudoti mysqldump gauti visą duomenų bazės atsarginę kopiją.

mysqldump -h jūsų DB pagrindinio kompiuterio vardas arba IP -u DB vartotojo vardas -p duomenų bazės pavadinimas> db_backup.sql

Šiek tiek pertraukiame šią komandą:

  • "-h": Ši vėliava yra duomenų bazė priimančioji. Tai gali būti visas vardas (pvz., Myhost.domain.com) arba IP adresas. Taip pat galite palikti tuščią, jei ją paleidžiate tame pačiame kompiuteryje kaip ir "MySQL" serveris.
  • "-u": Kaip minėta, tai yra jūsų Vartotojo vardas.
  • "-p": Jei tinkamai apsaugote savo MySQL diegimą, jums reikės Slaptažodis Prisijungti. Ši vėliavėlė, neturinčio jokių argumentų, ragins jus įvesti slaptažodį, kai vykdysite komandą. Kartais patartina tiesiogiai nurodyti savo slaptažodį kaip argumentą šiai vėliavai, pavyzdžiui, atsarginiame scenarijuje. Tačiau greituoju atveju neturėtumėte, nes jei kas nors pateko į jūsų kompiuterį, jie galėjo gauti šį slaptažodį savo komandų istorijoje.
  • "> db_backup.sql": Paskutinė dalis pasakoja mysqldump nukreipti visą savo produkciją į failą. Paprastai komanda viską išveda tiesiai į konsolę, o tai reiškia, kad pamatysite daugybę SQL užrašų. Bet vietoj to simbolis *> * yra ženklas, kad visas tas daiktas būtų perkeltas į pavadintą teksto failą. Jei šis failas neegzistuoja, jis bus sukurtas automatiškai.

Kai baigsite, turėsite .SQL failą. Tai tik teksto failas, kuriame yra SQL užrašai. Galite atidaryti jį bet kuriame teksto redaktoriuje, kad galėtumėte peržiūrėti turinį. Žvelgiant į eksportą iš "WordPress" duomenų bazės, galite pamatyti, kaip šie failai sujungti.

Failas suskirstytas į skyrius. Pirmiau pateiktame paveikslėlyje matome pirmąjį skyrių, kuriame pateikiama "WordPress" komentarų lentelė. Antrajame skyriuje tada atkurtas turinys (t. Y. Komentarų įrašai), kuris buvo tame lentelėse. Kai grįšite iš naujo importuoti savo MySQL dump, komanda veiks per failą, vykdysite teiginius ir iš naujo kuriate savo duomenų bazę, kaip tai buvo. Taigi, kaip tu tai darai? Pažiūrėkime.

"MySQL" dump failo importavimas

Kad galėtumėte tai padaryti, jums reikės jau sukurtos duomenų bazės ir turite galiojantį vardą ir slaptažodį. Taip pat turėtumėte turėti visas duomenų bazės teises. (Griežtai tariant, jums to nereikia GRANT leidimas, bet lengviau juos visiems suteikti.) Šiame straipsnyje rasite išsamią informaciją apie duomenų bazės leidimus.

Jei norite iš naujo importuoti savo duomenis, atlikite šiuos veiksmus:

  1. Prisijunkite prie MySQL serverio su mysql komanda
  2. Įveskite naudoti duomenų bazės pavadinimas iš eilės, pakeičiant atitinkamą DB pavadinimą.
  3. Įveskite šaltinis filename, pakeisdamas antspaudos failo pavadinimą, kurį pamiršote anksčiau.

Kai būsite baigę, pamatysite ilgą pranešimų sąrašą, kuriame bus nurodyta, kad SQL pareiškimai vykdomi. Nepamirškite klaidų, bet jei turite tinkamus leidimus, jums turėtų būti gerai, nes tai yra tuščia duomenų bazė.

Kai procesas bus baigtas, turėsite originalios duomenų bazės kopiją. Galite tai patikrinti atlikdami dar vieną sąvartyną ir lygindami du išėjimus. Tinkamas teksto redagavimo priemonė galės tai padaryti jums arba specialiai skirtam * diff * įrankiui, kaip parodyta toliau pateiktame paveikslėlyje:

Yra tik du skirtumai tarp šių failų, kuriuos vaizduoja raudonos linijos pačioje dešinėje slinkties juostos viršuje ir apačioje. Pirmasis yra eilutė, kurioje yra duomenų bazės pavadinimas, ir mes tikimės, kad tai kitokia, nes mes juos pavadinome skirtingai. Antrasis, visą pabaigos pusę, yra laiko žymos failo dump. Ir mes taip pat tikimės, kad tai bus kitokia, nes po antrosios duomenų bazės atkūrėme pirmąją. Priešingu atveju failai yra visiškai tokie patys, tai reiškia, kad jų sukurtos duomenų bazės taip pat yra!