Skip to main content

Τι είναι το mysqldump και πώς μπορώ να το χρησιμοποιήσω;

How To Recover MySQL Database From Data Files (Ιούνιος 2025)

How To Recover MySQL Database From Data Files (Ιούνιος 2025)
Anonim

Ως μία από τις κορυφαίες διαθέσιμες βάσεις δεδομένων, η MySQL είναι μια δημοφιλής επιλογή για κάθε είδους εφαρμογές ιστού. Με την έκθεση στο Διαδίκτυο, η εφαρμογή σας είναι φυσικά εκτεθειμένη σε κακόβουλες επιθέσεις. Εάν ο διακομιστής σας είναι κατεστραμμένος, στην καλύτερη περίπτωση θα πρέπει να εγκαταστήσετε ξανά την εφαρμογή σας. στη χειρότερη περίπτωση, μπορεί να χάσετε τα δεδομένα σας εξ ολοκλήρου. Τέλος, θα είστε σε μια κατάσταση όπου θα πρέπει να μεταφέρετε μια βάση δεδομένων από το ένα διακομιστή στον άλλο.

Τι είναι το mysqldump χρησιμοποιείται για;

ο mysqldump εργαλείο καλύπτεστε και για τις δύο αυτές καταστάσεις. Βασική λειτουργία του είναι η λήψη μιας βάσης δεδομένων MySQL και η "εξόρυξη" της ως αρχείου κειμένου. Αλλά όχι μόνο οποιοδήποτε αρχείο κειμένου … το αρχείο είναι a σύνολο εντολών SQL. Αυτές οι δηλώσεις, όταν εκτελούνται, θα μεταγλωττίζουν τη βάση δεδομένων σας στην ακριβή κατάσταση στην οποία βρισκόταν όταν εκτελέσατε την χωματερή.

Έτσι μπορείτε να χρησιμοποιήσετε mysqldump να πραγματοποιούν εξαγωγές μιας βάσης δεδομένων. Αυτά μπορεί να είναι για σκοπούς δημιουργίας αντιγράφων ασφαλείας ή επειδή μετακινείτε τη βάση δεδομένων σε έναν νέο κεντρικό υπολογιστή. Και στις δύο περιπτώσεις, θα είστε σε κάποιο σημείο εισαγωγή το αρχείο κειμένου πίσω σε διακομιστή βάσης δεδομένων MySQL. Θα εκτελέσει όλες τις εντολές SQL στο αρχείο, το οποίο ξαναχτίζει το DB σας στην αρχική του κατάσταση. Αυτό το μέρος δεν χρησιμοποιεί πραγματικά το mysqldump αλλά δεν θα ήταν δυνατή χωρίς αυτό το βοηθητικό πρόγραμμα!

Τα έγγραφα MySQL παραθέτουν άλλες μεθόδους δημιουργίας αντιγράφων ασφαλείας, αλλά όλα αυτά έχουν τα δικά τους μειονεκτήματα:

  • Hotcopying ένα DB από MySQL Enterprise είναι ένας πολύ καλός τρόπος για να επιτευχθούν αυτά τα αντίγραφα ασφαλείας … αν δεν σας πειράζει την τιμή της επιχείρησης.
  • Η αντιγραφή των καταλόγων δεδομένων του DB μπορεί να είναι δύσκολη εάν μετακινείτε τα λειτουργικά συστήματα, καθώς οι προορισμοί τους θα είναι διαφορετικοί.
  • Η εξαγωγή σε ένα αρχείο οριοθετημένου κειμένου θα σας δώσει το περιεχόμενο, αλλά θα πρέπει να αναδημιουργήσετε τον εαυτό σας. Και καλύτερα να το καταφέρετε ακριβώς …
  • Μπορείτε συχνά να δημιουργήσετε αντίγραφα ασφαλείας των βάσεων δεδομένων από προγράμματα GUI όπως το MySQL Workbench. Αλλά αυτή είναι μια χειροκίνητη διαδικασία, δηλαδή όχι κάτι που μπορείτε να γράψετε ή να συμπεριλάβετε σε μια εργασία παρτίδας.

Εγκατάσταση του εργαλείου mysqldump

Αν ενδιαφέρεστε για αυτό το άρθρο, πιθανότατα έχετε εγκατεστημένη την MySQL. Αν συμβαίνει αυτό, καλά νέα - που έχετε ήδη mysqldump! Εάν όχι, μπορείτε απλά να εγκαταστήσετε την MySQL με τον συνήθη τρόπο για το λειτουργικό σας σύστημα.

Για τα Windows, ελέγξτε εδώ τις οδηγίες μας για την εγκατάσταση της MySQL στα Windows 7 (η διαδικασία εγκατάστασης παραμένει πολύ ίδια). Ομοίως στο macOS, δείτε τις οδηγίες μας για να εγκαταστήσετε την MySQL στο macOS 10.7 (και πάλι, παλαιότερα, αλλά εξακολουθεί να ισχύει). Οι χρήστες συστημάτων Linux που βασίζονται στο Ubuntu μπορούν να χρησιμοποιήσουν την ακόλουθη εντολή για την εγκατάσταση του προγράμματος-πελάτη και των βοηθητικών προγραμμάτων MySQL:

sudo apt να εγκαταστήσετε το mysql-client

Εξαγωγή μνήμης MySQL

Μόλις εγκατασταθεί, μπορείτε να χρησιμοποιήσετε mysqldump για να λάβετε ένα πλήρες αντίγραφο ασφαλείας της βάσης δεδομένων σας.

mysqldump -h όνομα του κεντρικού υπολογιστή του DB ή του IP -u το όνομα του χρήστη DB -p όνομα της βάσης δεδομένων> db_backup.sql

Ας σπάσουμε αυτή την εντολή λίγο:

  • "-h": Αυτή η σημαία είναι η βάση δεδομένων πλήθος. Μπορεί να είναι πλήρες όνομα κεντρικού υπολογιστή (π.χ. myhost.domain.com) ή διεύθυνση IP. Μπορείτε επίσης να αφήσετε αυτό το κενό αν το εκτελείτε στον ίδιο κεντρικό υπολογιστή με τον εξυπηρετητή MySQL.
  • "-u": Όπως αναφέρθηκε, αυτό είναι το δικό σας όνομα χρήστη.
  • "-Π": Εάν έχετε εξασφαλίσει σωστά την εγκατάσταση MySQL, θα χρειαστείτε ένα Κωδικός πρόσβασης για να συνδεθείτε. Αυτή η σημαία χωρίς κανένα όρισμα θα σας ζητήσει έναν κωδικό πρόσβασης όταν εκτελέσετε την εντολή. Μερικές φορές είναι χρήσιμο να δώσετε τον κωδικό πρόσβασής σας απευθείας ως όρισμα σε αυτήν τη σημαία, για παράδειγμα σε μια εφεδρική δέσμη ενεργειών. Αλλά με την προτροπή, δεν πρέπει, επειδή αν κάποιος αποκτήσει πρόσβαση στον υπολογιστή σας, θα μπορούσε να πάρει αυτόν τον κωδικό πρόσβασης στην ιστορία των εντολών σας.
  • "> db_backup.sql": Αυτό το τελευταίο μέρος λέει mysqldump για να κατευθύνει όλη την παραγωγή του σε ένα αρχείο. Κανονικά, η εντολή θα εξάγει τα πάντα κατευθείαν στην κονσόλα, πράγμα που σημαίνει ότι θα δείτε μια δέσμη εντολών SQL που πετούν. Αντίθετα, το σύμβολο *> * είναι ένα σημάδι για τη διοχέτευση όλων αυτών των στοιχείων στο αρχείο κειμένου που ονομάζεται. Και αν αυτό το αρχείο δεν υπάρχει, θα δημιουργηθεί αυτόματα.

Όταν τελειώσει, θα έχετε ένα αρχείο .SQL. Αυτό είναι απλώς ένα αρχείο κειμένου που περιέχει δηλώσεις SQL. Μπορείτε να το ανοίξετε σε οποιοδήποτε πρόγραμμα επεξεργασίας κειμένου για να ελέγξετε τα περιεχόμενα. Εξετάζοντας μια εξαγωγή από μια βάση δεδομένων WordPress, μπορείτε να δείτε πώς αυτά τα αρχεία είναι μαζί.

Το αρχείο χωρίζεται σε τμήματα. Στην παραπάνω εικόνα, μπορούμε να δούμε την πρώτη ενότητα ορίζει τον πίνακα για τα σχόλια του WordPress. Στη συνέχεια, η δεύτερη ενότητα επαναδημιουργεί το περιεχόμενο (δηλ. Τα αρχεία σχολίων) που υπήρχε σε αυτούς τους πίνακες. Όταν πηγαίνετε ξανά για να εισαγάγετε ξανά την απόρριψη MySQL, η εντολή θα λειτουργήσει μέσω του αρχείου, εκτελώντας τις δηλώσεις και ξανακτίζοντας τη βάση δεδομένων σας όπως ακριβώς ήταν. Λοιπόν, πώς το κάνετε αυτό; Ας ΡΙΞΟΥΜΕ μια ΜΑΤΙΑ.

Εισαγωγή αρχείου ένδειξης MySQL

Πριν μπορέσετε να το κάνετε αυτό, θα χρειαστείτε μια βάση δεδομένων που έχετε ήδη δημιουργήσει και έχετε έγκυρο όνομα χρήστη και κωδικό πρόσβασης. Θα πρέπει επίσης να έχετε όλα τα δικαιώματα για τη βάση δεδομένων. (Αυστηρά μιλώντας δεν χρειάζεστε το ΧΟΡΗΓΗΣΗ αλλά είναι ευκολότερο να τα παραχωρήσετε όλοι.) Μπορείτε να βρείτε λεπτομέρειες σχετικά με τα δικαιώματα βάσης δεδομένων σε αυτό το άρθρο.

Για να επανεισάγετε τα δεδομένα σας, ακολουθήστε τα εξής βήματα:

  1. Συνδεθείτε στο διακομιστή MySQL με το mysql εντολή.
  2. Τύπος χρήση όνομα βάσης δεδομένων με την προτροπή, αντικαθιστώντας το κατάλληλο όνομα του ΣΠ.
  3. Εισαγω πηγή όνομα αρχείου, αντικαθιστώντας το όνομα του αρχείου ένδειξης σφαλμάτων που χρησιμοποιήσατε προηγουμένως.

Όταν τελειώσετε, θα δείτε μια μακρά λίστα με μηνύματα που θα σημειώνουν ότι οι εντολές SQL εκτελούνται. Προσέξτε για σφάλματα, αλλά αν έχετε τα σωστά δικαιώματα, θα πρέπει να είστε εντάξει καθώς είναι μια κενή βάση δεδομένων.

Μόλις ολοκληρωθεί η διαδικασία, θα έχετε ένα αντίγραφο της αρχικής βάσης δεδομένων σας. Μπορείτε να το επαληθεύσετε κάνοντας άλλη χωματερή και συγκρίνοντας τις δύο εξόδους. Ένας αξιοπρεπής επεξεργαστής κειμένου θα είναι σε θέση να το κάνει αυτό για εσάς ή ένα ειδικό εργαλείο * diff * όπως αυτό που φαίνεται στην παρακάτω εικόνα:

Υπάρχουν μόνο δύο διαφορές μεταξύ αυτών των αρχείων, όπως παριστάνονται με κόκκινες γραμμές στο επάνω και κάτω μέρος της δεξιάς γραμμής κύλισης. Η πρώτη είναι η γραμμή που περιέχει το όνομα της βάσης δεδομένων και αναμένουμε ότι αυτό θα είναι διαφορετικό επειδή τα ονομάσαμε διαφορετικά. Το δεύτερο, μέχρι το τέλος, είναι η χρονική σήμανση για το αρχείο ένδειξης σφαλμάτων. Και αναμένουμε και αυτό να είναι διαφορετικό, καθώς δημιουργήσαμε τη δεύτερη βάση δεδομένων μετά την πρώτη. Διαφορετικά, τα αρχεία είναι ακριβώς τα ίδια, δηλαδή οι βάσεις δεδομένων που τις δημιούργησαν είναι επίσης!