რა არის mysqldump და როგორ გამოვიყენო იგი?

Სარჩევი:

რა არის mysqldump და როგორ გამოვიყენო იგი?
რა არის mysqldump და როგორ გამოვიყენო იგი?
Anonim

როგორც ერთ-ერთი წამყვანი თავისუფლად ხელმისაწვდომი მონაცემთა ბაზა, MySQL არის პოპულარული არჩევანი მრავალი ვებ აპლიკაციისთვის. ინტერნეტში ყოფნისას თქვენი აპი ექვემდებარება მავნე თავდასხმებს. თუ თქვენი სერვერი დაზიანებულია, საუკეთესო შემთხვევაში, თქვენ უნდა დააინსტალიროთ აპლიკაცია; უარეს შემთხვევაში, შეიძლება დაკარგოთ თქვენი მონაცემები. გარდა ამისა, თქვენ შეიძლება მოხვდეთ სიტუაციაში, როდესაც დაგჭირდებათ მონაცემთა ბაზის მიგრაცია ერთი სერვერიდან მეორეზე.

რისთვის გამოიყენება mysqldump?

mysqldump ინსტრუმენტმა დაფარა როგორც სერვერის კომპრომისისთვის, ასევე მიგრაციის სიტუაციებისთვის. მისი ძირითადი ფუნქციაა MySQL მონაცემთა ბაზის აღება და ტექსტური ფაილის სახით გადაყრა. მაგრამ არა ნებისმიერი ტექსტური ფაილი; ფაილი არის SQL განცხადებების ნაკრები.ეს განცხადებები, როდესაც შესრულდება, რეკონსტრუქციას უწევს მონაცემთა ბაზას იმ ზუსტ მდგომარეობამდე, რომელშიც იყო ნაგავსაყრელის შესრულებისას.

გამოიყენეთ mysqldump მონაცემთა ბაზის ექსპორტის შესაქმნელად სარეზერვო ასლების სახით, ან მონაცემთა ბაზის ახალ ჰოსტზე გადატანისას. ორივე შემთხვევაში, ტექსტური ფაილი დაბრუნდება MySQL მონაცემთა ბაზის სერვერზე. ის შეასრულებს ყველა SQL განცხადებას ფაილში, რომელიც აღადგენს მონაცემთა ბაზას თავდაპირველ მდგომარეობაში. ეს ნაწილი არ იყენებს mysqldump ბრძანებას, მაგრამ ეს შეუძლებელი იქნება ამ პროგრამის გარეშეც.

MySQL დოკუმენტებში ჩამოთვლილია სარეზერვო ასლების შექმნის სხვა მეთოდები, მაგრამ მათ აქვთ ნაკლოვანებები:

  • მონაცემთა ბაზის ცხელი კოპირება MySQL Enterprise-დან არის შესანიშნავი გზა ამ სარეზერვო ასლების მისაღწევად - თუ არ გაწუხებთ Enterprise ფასის ნიშანი.
  • მონაცემთა ბაზის მონაცემთა დირექტორიების კოპირება შეიძლება რთული იყოს ოპერაციულ სისტემებში გადაადგილებისას, რადგან მიმართულებები განსხვავებული იქნება.
  • შეზღუდულ ტექსტურ ფაილში ექსპორტი მოგცემთ კონტენტს, მაგრამ თქვენ მოგიწევთ სტრუქტურის ხელახლა შექმნა.
  • თქვენ ხშირად შეგიძლიათ მონაცემთა ბაზის სარეზერვო ასლი GUI პროგრამებიდან, როგორიცაა MySQL Workbench. მაგრამ ეს არის ხელით პროცესი; არ არის ის, რაც შეგიძლიათ დაწეროთ ან ჩართოთ ჯგუფურ სამუშაოში.

დააინსტალირეთ mysqldump Tool

Windows-ისთვის შეამოწმეთ ჩვენი ინსტრუქციები, რომ დააინსტალიროთ MySQL Windows 7-ზე (ინსტალაციის პროცესი იგივეა 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 dump, ბრძანება მუშაობს ფაილში, ახორციელებს განცხადებებს და ხელახლა აშენებს მონაცემთა ბაზას ისე, როგორც იყო.

MySQL Dump ფაილის იმპორტი

სანამ ნაგავსაყრელ ფაილს შემოიტანთ, დაგჭირდებათ უკვე შექმნილი მონაცემთა ბაზა და მისი მოქმედი მომხმარებლის სახელი და პაროლი. თქვენ ასევე უნდა გქონდეთ მონაცემთა ბაზის ყველა ნებართვა. თქვენ არ გჭირდებათ GRANT ნებართვა, მაგრამ უფრო ადვილია მათი მინიჭება.

შეიტყვეთ მეტი მონაცემთა ბაზის ნებართვების შესახებ, სანამ შეცვლით უსაფრთხოების როლებს თქვენს მონაცემთა ბაზაში.

თქვენი მონაცემების ხელახლა იმპორტისთვის, შედით MySQL სერვერზე mysql ბრძანებით. აკრიფეთ use [database name] მოთხოვნაში და ჩაანაცვლეთ მონაცემთა ბაზის სახელი. შეიყვანეთ source [filename] და ჩაანაცვლეთ ადრე აღებული dump ფაილის სახელი.

როდესაც დაასრულებთ, გამოჩნდება შეტყობინებების სია, სადაც აღნიშნულია, რომ SQL განცხადებები სრულდება. თვალი ადევნეთ შეცდომებს, მაგრამ თუ გაქვთ სწორი ნებართვა, კარგად უნდა იყოთ.

Image
Image

როდესაც პროცესი დასრულდება, გექნებათ ორიგინალური მონაცემთა ბაზის დუბლიკატი. მონაცემთა ბაზებს შორის მსგავსების შესამოწმებლად, შეასრულეთ კიდევ ერთი ნაგავსაყრელი და შეადარეთ ორი გამოსავალი. გამოიყენეთ ტექსტური რედაქტორი ან გამოყოფილი განსხვავების ინსტრუმენტი ამ ორი ფაილის შესადარებლად.

Image
Image

ამ ფაილებს შორის ორი განსხვავებაა, როგორც ეს წარმოდგენილია წითელი ხაზებით მარჯვენა გადახვევის ზოლის ზედა და ქვედა ნაწილში. პირველი არის ხაზი, რომელიც შეიცავს მონაცემთა ბაზის სახელს და ეს განსხვავებულია, რადგან ფაილებს სხვა სახელი ეწოდა. მეორე არის ნაგავსაყრელი ფაილის დროის შტამპი. ეს განსხვავებულია, რადგან მეორე მონაცემთა ბაზა ხელახლა შეიქმნა პირველის შემდეგ. წინააღმდეგ შემთხვევაში, ფაილები ზუსტად იგივეა, რაც იმას ნიშნავს, რომ მათი გენერირებული მონაცემთა ბაზებიც არის.

FAQ

    როგორ გამოვასწოროთ 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".

გირჩევთ: