Mysqldump ni nini na ninaitumiaje?

Orodha ya maudhui:

Mysqldump ni nini na ninaitumiaje?
Mysqldump ni nini na ninaitumiaje?
Anonim

Kama mojawapo ya hifadhidata zinazopatikana bila malipo, MySQL ni chaguo maarufu kwa programu nyingi za wavuti. Kwa kuwa programu yako imefichuliwa kwenye mtandao, inakabiliwa na mashambulizi mabaya. Ikiwa seva yako imeathiriwa, bora, unahitaji kusakinisha tena programu; mbaya zaidi, unaweza kupoteza data yako. Kwa kuongeza, unaweza kupata hali ambapo unahitaji kuhamisha hifadhidata kutoka seva moja hadi nyingine.

mysqldump Inatumika Kwa Nini?

Zana ya mysqldump imekushughulikia kwa maelewano ya seva na hali za uhamaji. Kazi yake ya msingi ni kuchukua hifadhidata ya MySQL na kuitupa kama faili ya maandishi. Lakini sio faili yoyote ya maandishi; faili ni seti ya taarifa za SQL. Taarifa hizi, zinapotekelezwa, huunda upya hifadhidata kwa hali halisi iliyokuwa wakati utupaji umewekwa.

Tumia mysqldump kuunda uhamishaji wa hifadhidata kama hifadhi rudufu, au unapohamisha hifadhidata hadi kwa seva pangishi mpya. Kwa vyovyote vile, faili ya maandishi italetwa tena kwenye seva ya hifadhidata ya MySQL. Itatekeleza taarifa zote za SQL kwenye faili, ambayo hujenga upya hifadhidata kwa hali yake ya asili. Sehemu hii haitumii amri ya mysqldump, lakini haingewezekana bila matumizi haya pia.

Hati za MySQL huorodhesha njia zingine za kutengeneza nakala, lakini hizi zina shida:

  • Kunakili hifadhidata kutoka kwa MySQL Enterprise ni njia nzuri ya kufikia hifadhi hizi - ikiwa hujali lebo ya bei ya Enterprise.
  • Kunakili saraka za data ya hifadhidata kunaweza kuwa jambo gumu unapohamia kwenye mifumo ya uendeshaji, kwani marudio yatakuwa tofauti.
  • Kuhamisha hadi faili iliyowekewa kikomo kutakupa maudhui, lakini itabidi uunde upya muundo.
  • Mara nyingi unaweza kuhifadhi hifadhidata kutoka kwa programu za GUI kama vile MySQL Workbench. Lakini huu ni mchakato wa mwongozo; sio kitu ambacho unaweza kuandika au kujumuisha katika kazi ya kundi.

Sakinisha Zana ya mysqldump

Kwa Windows, angalia maagizo yetu ili kusakinisha MySQL kwenye Windows 7 (mchakato wa kusakinisha ni sawa kwa Windows 10). Kwenye macOS, angalia maagizo yetu ya kusakinisha MySQL kwenye macOS 10.7 (tena, ya zamani lakini bado inatumika). Watumiaji wa mifumo ya Linux inayotegemea Ubuntu wanaweza kutumia amri ifuatayo kusakinisha kiteja na huduma za MySQL:

sudo apt install mysql-client

Nyoa Dampo la MySQL

Baada ya kusakinishwa, tumia mysqldump kupata hifadhi kamili ya hifadhidata.

mysqldump -h [jina la mwenyeji wako wa DB au IP] -u [jina la mtumiaji wa DB] -p [jina la hifadhidata] > db_backup.sql

Haya hapa ni maelezo ya bendera zilizotumika katika amri hii:

  • - h: Alama hii ndiyo seva pangishi ya hifadhidata. Inaweza kuwa jina kamili la mpangishaji (kwa mfano, myhost.domain.com) au anwani ya IP. Acha hii ikiwa wazi ikiwa utaendesha amri kwenye seva pangishi sawa na seva ya MySQL.
  • - u: Jina lako la mtumiaji.
  • - p: Ikiwa ulilinda ipasavyo usakinishaji wa MySQL, utahitaji nenosiri ili kuunganisha. Bendera hii bila hoja inakuhimiza kupata nenosiri unapotekeleza amri. Wakati mwingine ni muhimu kutoa nenosiri moja kwa moja kama hoja ya bendera hii, kwa mfano, katika hati mbadala. Lakini kwa haraka, hupaswi kufanya hivyo, kwa sababu ikiwa mtu alipata ufikiaji wa kompyuta yako, anaweza kupata nenosiri hili katika historia ya amri.
  • > db_backup.sql: Sehemu hii inaiambia mysqldump kuelekeza matokeo yake kwa faili. Kawaida, amri hutoa kila kitu kwa koni, ikimaanisha kuwa utaona taarifa kadhaa za SQL kwenye skrini. Alama ya > husambaza pato kwenye faili ya maandishi iliyopewa jina. Ikiwa faili hii haipo, itaundwa kiotomatiki.

Ikikamilika, utakuwa na faili ya. SQL. Hii ni faili ya maandishi iliyo na taarifa za SQL. Unaweza kuifungua katika kihariri chochote cha maandishi ili kukagua yaliyomo. Hapa kuna uhamishaji kutoka kwa hifadhidata ya WordPress inayoonyesha jinsi faili hizi zinavyowekwa pamoja.

Image
Image

Faili imegawanywa katika sehemu. Sehemu ya kwanza inaweka jedwali kwa maoni ya WordPress. Sehemu ya pili inaunda upya yaliyomo kwenye majedwali hayo (katika mfano huu, rekodi za maoni). Unapoleta tena dampo la MySQL, amri hufanya kazi kupitia faili, kutekeleza taarifa, na kuunda upya hifadhidata jinsi ilivyokuwa.

Ingiza Faili ya Utupaji ya MySQL

Kabla ya kuleta faili ya kutupa, utahitaji hifadhidata ambayo tayari imeundwa na jina lake la mtumiaji na nenosiri halali. Unapaswa pia kuwa na ruhusa zote za hifadhidata. Huhitaji ruhusa ya GRANT, lakini ni rahisi kuzipa zote.

Pata maelezo zaidi kuhusu ruhusa za hifadhidata kabla ya kubadilisha majukumu ya usalama ndani ya hifadhidata yako.

Ili kuingiza tena data yako, ingia kwenye seva ya MySQL kwa amri ya mysql. Andika tumia [jina la hifadhidata] kwa kidokezo, na ubadilishe jina la hifadhidata. Weka chanzo [jina la faili], na ubadilishe jina la faili ya kutupa uliyochukua awali.

Ukimaliza, orodha ya ujumbe inaonekana ikibainisha kuwa taarifa za SQL zinatekelezwa. Angalia makosa, lakini ikiwa una ruhusa zinazofaa, unapaswa kuwa sawa.

Image
Image

Mchakato utakapokamilika, utakuwa na nakala ya hifadhidata asili. Ili kuthibitisha mfanano kati ya hifadhidata, fanya utupaji mwingine kisha ulinganishe matokeo hayo mawili. Tumia kihariri cha maandishi au zana maalum ya tofauti kulinganisha faili mbili.

Image
Image

Kuna tofauti mbili kati ya faili hizi, kama zinavyowakilishwa na mistari nyekundu iliyo juu na chini ya upau wa kusogeza wa kulia. Ya kwanza ni mstari ambao una jina la hifadhidata, na hii ni tofauti kwa sababu faili ziliitwa tofauti. Ya pili ni muhuri wa muda wa faili ya kutupa. Hii ni tofauti kwa sababu hifadhidata ya pili iliundwa upya baada ya ya kwanza. Vinginevyo, faili ni sawa, ikimaanisha kuwa hifadhidata ambazo zimezitoa pia.

Maswali Yanayoulizwa Mara kwa Mara

    Unawezaje kurekebisha hitilafu ya mysqldump: Ufikiaji umekataliwa unapotumia majedwali ya kufuli?

    Muulize msimamizi wako wa hifadhidata akupe fursa ya LOCK. Hili lisiposuluhisha suala hilo, jaribu kutekeleza amri ile ile ya mysqldump ukiongeza bendera ya - -muamala-moja, kama vile [ $ mysqldump --single-transaction] [-u mtumiaji] [-p DBNAME] > chelezo.sql

    Je, unaweza kutumia kifungu cha "wapi" na mysqldump?

    Tumia kifungu cha WHERE unapounda nakala rudufu inayojumuisha safu mlalo zinazotimiza masharti uliyopewa. Kwa mfano, ili kutupa data tu kutoka kwa safu mlalo zilizo na safu wima ya kitambulisho kubwa zaidi ya 100, weka "mysqldump my_db_name my_table_name --where="id > 100" > my_backup.sql".

Ilipendekeza: