Ի՞նչ է mysqldump-ը և ինչպես կարող եմ օգտագործել այն:

Բովանդակություն:

Ի՞նչ է mysqldump-ը և ինչպես կարող եմ օգտագործել այն:
Ի՞նչ է mysqldump-ը և ինչպես կարող եմ օգտագործել այն:
Anonim

Որպես առաջատար ազատ հասանելի տվյալների բազաներից մեկը՝ MySQL-ը տարածված ընտրություն է բազմաթիվ վեբ հավելվածների համար: Լինելով համացանցի ազդեցության տակ՝ ձեր հավելվածը ենթարկվում է վնասակար հարձակումների: Եթե ձեր սերվերը վտանգված է, լավագույն դեպքում, դուք պետք է նորից տեղադրեք հավելվածը. վատագույն դեպքում, դուք կարող եք կորցնել ձեր տվյալները: Բացի այդ, դուք կարող եք հայտնվել այնպիսի իրավիճակում, երբ ձեզ անհրաժեշտ է տվյալների բազան մի սերվերից մյուսը տեղափոխել:

Ինչի՞ համար է օգտագործվում mysqldump:

Mysqldump գործիքը ծածկում է ինչպես սերվերի փոխզիջման, այնպես էլ միգրացիայի իրավիճակների համար: Դրա հիմնական գործառույթն է վերցնել MySQL տվյալների բազան և այն դուրս հանել որպես տեքստային ֆայլ: Բայց ոչ որևէ տեքստային ֆայլ; ֆայլը SQL հայտարարությունների մի շարք է:Այս հայտարարությունները, երբ կատարվում են, վերակառուցում են տվյալների բազան այն ճշգրիտ վիճակին, որը գտնվում էր աղբահանության կատարման ժամանակ:

Օգտագործեք mysqldump՝ տվյալների բազայի արտահանումներ ստեղծելու համար որպես կրկնօրինակներ կամ տվյալների բազան նոր հոսթ տեղափոխելիս: Երկու դեպքում էլ տեքստային ֆայլը ետ կներմուծվի MySQL տվյալների բազայի սերվեր: Այն կկատարի ֆայլի բոլոր SQL հայտարարությունները, որը վերակառուցում է տվյալների բազան իր սկզբնական վիճակին: Այս մասը չի օգտագործում mysqldump հրամանը, բայց առանց այս օգտակարության էլ դա հնարավոր չէր լինի:

MySQL փաստաթղթերում թվարկված են կրկնօրինակումներ ստեղծելու այլ մեթոդներ, սակայն դրանք ունեն թերություններ.

  • MySQL Enterprise-ից տվյալների բազայի արագ պատճենումը հիանալի միջոց է այս պահուստավորումները ստանալու համար, եթե դեմ չեք Enterprise-ի գնային պիտակին:
  • Տվյալների բազայի տվյալների գրացուցակները պատճենելը կարող է բարդ լինել օպերացիոն համակարգերով շարժվելիս, քանի որ ուղղությունները տարբեր կլինեն:
  • Արտահանումը դեպի սահմանազատված տեքստային ֆայլ ձեզ կտա բովանդակություն, բայց դուք պետք է վերստեղծեք կառուցվածքը:
  • Հաճախ կարող եք տվյալների բազաները կրկնօրինակել GUI ծրագրերից, ինչպիսին է MySQL Workbench-ը: Բայց սա ձեռքով գործընթաց է. ոչ մի բան, որը կարող եք գրել կամ ներառել խմբաքանակային աշխատանքում:

Տեղադրեք mysqldump գործիքը

Windows-ի համար ստուգեք մեր հրահանգները՝ Windows 7-ում MySQL-ը տեղադրելու համար (տեղադրման գործընթացը նույնն է Windows 10-ի համար): MacOS-ում տեսեք մեր ցուցումները՝ տեղադրելու MySQL-ը macOS 10.7-ում (կրկին ավելի հին, բայց դեռ կիրառելի): Ubuntu-ի վրա հիմնված Linux համակարգերի օգտատերերը կարող են օգտագործել հետևյալ հրամանը՝ MySQL հաճախորդը և կոմունալ ծառայությունները տեղադրելու համար.

sudo apt install mysql-client

Արտահանել MySQL Dump

Տեղադրվելուց հետո օգտագործեք mysqldump տվյալների բազայի ամբողջական կրկնօրինակում ստանալու համար:

mysqldump -h [ձեր DB հյուրընկալողի անունը կամ IP] -u [DB օգտվողի անունը] -p [շտեմարանի անունը] > db_backup.sql

Ահա այս հրամանում օգտագործվող դրոշների նկարագրությունը.

  • - h. Այս դրոշը տվյալների բազայի հոսթն է: Այն կարող է լինել ամբողջական հոսթի անունը (օրինակ՝ myhost.domain.com) կամ IP հասցե։ Թողեք սա դատարկ, եթե հրամանը գործարկեք նույն հոսթի վրա, ինչ MySQL սերվերը:
  • - u՝ Ձեր օգտվողի անունը:
  • - p. Եթե ճիշտ եք ապահովել MySQL-ի տեղադրումը, միանալու համար ձեզ հարկավոր է գաղտնաբառ: Առանց արգումենտի այս դրոշը ձեզ հուշում է գաղտնաբառ, երբ կատարում եք հրամանը: Երբեմն օգտակար է գաղտնաբառն ուղղակիորեն որպես փաստարկ տրամադրել այս դրոշի համար, օրինակ՝ կրկնօրինակում սկրիպտում: Սակայն հրամայականի դեպքում դուք չպետք է դա անեք, քանի որ եթե ինչ-որ մեկը մուտք գործի ձեր համակարգիչ, նա կարող է ստանալ այս գաղտնաբառը հրամանների պատմության մեջ:
  • > db_backup.sql. Այս մասը mysqldump-ին ասում է իր ելքը ուղղել ֆայլ: Սովորաբար հրամանն ամեն ինչ թողարկում է վահանակ, այսինքն՝ էկրանին կտեսնեք մի քանի SQL հայտարարություններ: > խորհրդանիշը ելքը տեղափոխում է անվանված տեքստային ֆայլ: Եթե այս ֆայլը գոյություն չունի, այն ինքնաբերաբար կստեղծվի:

Երբ այն ավարտվի, դուք կունենաք. SQL ֆայլ: Սա տեքստային ֆայլ է, որը պարունակում է SQL հայտարարություններ: Դուք կարող եք այն բացել ցանկացած տեքստային խմբագրիչում՝ բովանդակությունը ստուգելու համար: Ահա մի արտահանում WordPress տվյալների բազայից, որը ցույց է տալիս, թե ինչպես են այս ֆայլերը հավաքվում:

Image
Image

Ֆայլը բաժանված է բաժինների: Առաջին բաժինը սահմանում է WordPress-ի մեկնաբանությունների աղյուսակը: Երկրորդ բաժինը վերստեղծում է այդ աղյուսակների բովանդակությունը (այս օրինակում մեկնաբանությունների գրառումները): Երբ դուք նորից ներմուծում եք MySQL աղբավայրը, հրամանն աշխատում է ֆայլի միջոցով, կատարում է հայտարարությունները և նորից կառուցում տվյալների բազան այնպես, ինչպես եղել է:

Ներմուծել MySQL Dump Ֆայլ

Նախքան աղբանոց ֆայլը ներմուծելը ձեզ անհրաժեշտ կլինի արդեն ստեղծված տվյալների բազա և դրա վավեր օգտանունն ու գաղտնաբառը: Դուք նաև պետք է ունենաք տվյալների բազայի բոլոր թույլտվությունները: Դուք GRANT թույլտվության կարիք չունեք, բայց ավելի հեշտ է բոլորին տրամադրել:

Իմացեք ավելին տվյալների բազայի թույլտվությունների մասին նախքան ձեր տվյալների բազայում անվտանգության դերերը փոխելը:

Ձեր տվյալները նորից ներմուծելու համար մուտք գործեք MySQL սերվեր mysql հրամանով: Մուտքագրեք use [database name] հուշում և փոխարինեք տվյալների բազայի անունը: Մուտքագրեք աղբյուր [filename] և փոխարինեք նախկինում վերցրած աղբավայրի անունը:

Երբ ավարտում եք, հայտնվում է հաղորդագրությունների ցանկ՝ նշելով, որ SQL հայտարարությունները կատարվում են: Հետևեք սխալներին, բայց եթե ունեք ճիշտ թույլտվություններ, պետք է լավ լինեք:

Image
Image

Երբ գործընթացն ավարտվի, դուք կունենաք սկզբնական տվյալների բազայի կրկնօրինակը: Տվյալների բազաների միջև նմանությունը ստուգելու համար կատարեք մեկ այլ աղբահանություն, ապա համեմատեք երկու ելքերը: Երկու ֆայլերը համեմատելու համար օգտագործեք տեքստային խմբագրիչ կամ հատուկ տարբերության գործիք:

Image
Image

Այս ֆայլերի միջև կա երկու տարբերություն, որոնք ներկայացված են կարմիր գծերով աջ ոլորման տողի վերևում և ներքևում: Առաջինն այն տողն է, որը պարունակում է տվյալների բազայի անվանումը, և սա տարբերվում է, քանի որ ֆայլերը այլ կերպ են անվանվել: Երկրորդը աղբավայրի ֆայլի ժամանակի դրոշմն է: Սա տարբեր է, քանի որ երկրորդ տվյալների բազան վերստեղծվել է առաջինից հետո: Հակառակ դեպքում, ֆայլերը նույնն են, ինչը նշանակում է, որ դրանք ստեղծած տվյալների բազաները նույնպես:

ՀՏՀ

    Ինչպե՞ս շտկել mysqldump սխալը. մուտքն արգելված է կողպման աղյուսակներ օգտագործելիս:

    Խնդրեք ձեր տվյալների բազայի ադմինիստրատորին, որպեսզի ձեզ շնորհի LOCK արտոնություն: Եթե դա չլուծի խնդիրը, փորձեք գործարկել նույն mysqldump հրամանը՝ ավելացնելով - -single-transaction դրոշը, օրինակ՝ [ $ mysqldump --single-transaction] [-u օգտվող] [-p DBNAME] > backup.sql

    Կարո՞ղ եք օգտագործել «where» կետը mysqldump-ի հետ:

    Օգտագործեք WHERE կետը կրկնօրինակ ստեղծելիս, որը ներառում է միայն տվյալ պայմանը բավարարող տողերը: Օրինակ՝ միայն 100-ից մեծ id սյունակ ունեցող տողերից տվյալները թափելու համար մուտքագրեք «mysqldump my_db_name my_table_name --where="id > 100" > my_backup.sql»:

Խորհուրդ ենք տալիս: