Si një nga bazat e të dhënave kryesore të disponueshme lirisht, MySQL është një zgjedhje popullore për shumë aplikacione ueb. Duke qenë i ekspozuar ndaj internetit, aplikacioni juaj është i ekspozuar ndaj sulmeve me qëllim të keq. Nëse serveri juaj është i komprometuar, në rastin më të mirë, duhet të riinstaloni aplikacionin; në rastin më të keq, ju mund të humbni të dhënat tuaja. Përveç kësaj, mund të gjendesh në një situatë ku të duhet të migrosh një bazë të dhënash nga një server në tjetrin.
Për çfarë përdoret mysqldump?
Mjeti mysqldump ju ka mbuluar si për situatat e komprometimit të serverit ashtu edhe për situatat e migrimit. Funksioni i tij themelor është të marrë një bazë të dhënash MySQL dhe ta hedhë atë si një skedar teksti. Por jo ndonjë skedar teksti; skedari është një grup deklaratash SQL. Këto deklarata, kur ekzekutohen, rindërtojnë bazën e të dhënave në gjendjen e saktë në të cilën ishte kur u ekzekutua deponimi.
Përdor mysqldump për të krijuar eksporte të një baze të dhënash si kopje rezervë, ose kur zhvendosni bazën e të dhënave në një host të ri. Në secilin rast, skedari i tekstit do të importohet përsëri në një server të bazës së të dhënave MySQL. Ai do të ekzekutojë të gjitha deklaratat SQL në skedar, i cili rindërton bazën e të dhënave në gjendjen e saj origjinale. Kjo pjesë nuk përdor komandën mysqldump, por nuk do të ishte e mundur as pa këtë mjet.
Dokumentet MySQL listojnë metoda të tjera për të bërë kopje rezervë, por këto kanë të meta:
- Kopjimi i një baze të dhënash nga MySQL Enterprise është një mënyrë e shkëlqyer për të arritur këto kopje rezervë - nëse nuk ju shqetëson çmimi i ndërmarrjes.
- Kopjimi i drejtorive të të dhënave të bazës së të dhënave mund të jetë i ndërlikuar kur lëviz nëpër sisteme operative, pasi destinacionet do të jenë të ndryshme.
- Eksportimi në një skedar teksti të kufizuar do t'ju japë përmbajtjen, por do t'ju duhet të rikrijoni strukturën.
- Shpesh mund të rezervoni bazat e të dhënave nga programet GUI si MySQL Workbench. Por ky është një proces manual; jo diçka që mund ta skriptosh ose ta përfshish në një punë grupore.
Instalo veglën mysqldump
Për Windows, kontrolloni udhëzimet tona për të instaluar MySQL në Windows 7 (procesi i instalimit është i njëjtë për Windows 10). Në macOS, shihni udhëzimet tona për të instaluar MySQL në macOS 10.7 (përsëri, më i vjetër, por ende i zbatueshëm). Përdoruesit e sistemeve Linux të bazuara në Ubuntu mund të përdorin komandën e mëposhtme për të instaluar klientin dhe shërbimet e MySQL:
sudo apt install mysql-client
Nxjerrja e një skedari MySQL
Pasi të instalohet, përdorni mysqldump për të marrë një kopje rezervë të plotë të një baze të dhënash.
mysqldump -h [emri i hostit tuaj DB ose IP] -u [emri i përdoruesit të DB] -p [emri i bazës së të dhënave] > db_backup.sql
Këtu është një përshkrim i flamujve të përdorur në këtë komandë:
- - h: Ky flamur është pritësi i bazës së të dhënave. Mund të jetë një emër i plotë pritës (për shembull, myhost.domain.com) ose një adresë IP. Lëreni këtë bosh nëse e ekzekutoni komandën në të njëjtin host si serveri MySQL.
- - u: Emri juaj i përdoruesit.
- - p: Nëse e keni siguruar siç duhet instalimin MySQL, do t'ju duhet një fjalëkalim për t'u lidhur. Ky flamur pa argument ju kërkon një fjalëkalim kur ekzekutoni komandën. Ndonjëherë është e dobishme të jepni fjalëkalimin drejtpërdrejt si argument për këtë flamur, për shembull, në një skript rezervë. Por në momentin e urdhrit, nuk duhet, sepse nëse dikush fiton qasje në kompjuterin tuaj, ai mund ta marrë këtë fjalëkalim në historikun e komandës.
- > db_backup.sql: Kjo pjesë i thotë mysqldump të drejtojë daljen e tij në një skedar. Normalisht, komanda nxjerr gjithçka në tastierë, që do të thotë se do të shihni disa deklarata SQL në ekran. Simboli > e kanalizon daljen në skedarin e tekstit të emërtuar. Nëse ky skedar nuk ekziston, ai krijohet automatikisht.
Kur të përfundojë, do të keni një skedar. SQL. Ky është një skedar teksti që përmban deklarata SQL. Mund ta hapni në çdo redaktues teksti për të inspektuar përmbajtjen. Këtu është një eksportim nga një bazë të dhënash WordPress që tregon se si janë bashkuar këta skedarë.
Skedari është i ndarë në seksione. Seksioni i parë krijon tabelën për komentet e WordPress. Seksioni i dytë rikrijon përmbajtjen në ato tabela (në këtë shembull, shënimet e komenteve). Kur ri-importoni deponimin e MySQL, komanda funksionon përmes skedarit, ekzekuton deklaratat dhe rindërton bazën e të dhënave ashtu siç ishte.
Importo një skedar MySQL Dump
Përpara se të importoni skedarin dump, do t'ju duhet një bazë të dhënash e krijuar tashmë dhe emri i përdoruesit dhe fjalëkalimi i saj i vlefshëm. Ju gjithashtu duhet të keni të gjitha lejet për bazën e të dhënave. Ju nuk keni nevojë për lejen e GRANT-it, por është më e lehtë t'i jepni të gjitha.
Mëso më shumë rreth lejeve të bazës së të dhënave përpara se të ndryshosh rolet e sigurisë brenda bazës së të dhënave.
Për të ri-importuar të dhënat tuaja, hyni në serverin MySQL me komandën mysql. Shkruani use [emri i bazës së të dhënave] në kërkesë dhe zëvendësoni emrin e bazës së të dhënave. Futni source [filename] dhe zëvendësoni emrin e skedarit të grumbulluar që keni marrë më parë.
Kur të keni mbaruar, shfaqet një listë mesazhesh duke vënë në dukje se deklaratat SQL po ekzekutohen. Mbani një sy për gabimet, por nëse keni lejet e duhura, duhet të jeni mirë.
Kur procesi të përfundojë, do të keni një dublikatë të bazës së të dhënave origjinale. Për të verifikuar ngjashmërinë midis bazave të të dhënave, kryeni një tjetër hale dhe më pas krahasoni të dy rezultatet. Përdorni një redaktues teksti ose një mjet të dedikuar ndryshimi për të krahasuar dy skedarët.
Ka dy dallime midis këtyre skedarëve, siç përfaqësohen nga vijat e kuqe në krye dhe në fund të shiritit të lëvizjes së djathtë. E para është linja që përmban emrin e bazës së të dhënave, dhe kjo është e ndryshme sepse skedarët janë emëruar ndryshe. E dyta është vula kohore për skedarin hale. Kjo është e ndryshme sepse databaza e dytë u rikrijua pas të parës. Përndryshe, skedarët janë saktësisht të njëjtë, domethënë bazat e të dhënave që i kanë gjeneruar janë gjithashtu.
FAQ
Si e rregulloni gabimin mysqldump: qasja refuzohet kur përdorni tabelat e kyçjes?
Kërkoni administratorin e bazës së të dhënave që t'ju japë privilegjin LOCK. Nëse kjo nuk e zgjidh problemin, provo të ekzekutosh të njëjtën komandë mysqldump duke shtuar flamurin - -single-transaction, si p.sh. [ $ mysqldump --single-transaction] [-u përdorues] [-p DBNAME] > backup.sql
A mund të përdorni një klauzolë "ku" me mysqldump?
Përdor një klauzolë WHERE kur krijoni një kopje rezervë që përfshin vetëm rreshtat që plotësojnë kushtin e dhënë. Për shembull, për të hedhur të dhënat vetëm nga rreshtat me kolonën id më të madhe se 100, shkruani "mysqldump my_db_name my_table_name --where="id > 100" > my_backup.sql".