Mysqldump πολλαπλούς πίνακες. Οδηγός αναφοράς MySQL

Η δημιουργία μιας ένδειξης δεδομένων (backup) είναι πολύ σημαντική. Έκανα λοιπόν κάποια σχόλια με παραδείγματα για αυτό εξαιρετική χρησιμότηταόπως το mysqldump.

mysqldump - ένα βοηθητικό πρόγραμμα που σας επιτρέπει να απορρίψετε τα περιεχόμενα μιας βάσης δεδομένων ή ένα σύνολο βάσεων δεδομένων για να δημιουργήσετε Αντίγραφο ασφαλείαςή αποστολή δεδομένων σε άλλο διακομιστή βάσης δεδομένων SQL (όχι απαραίτητα διακομιστή MySQL). Η ένδειξη θα περιέχει ένα σύνολο εντολών SQL για τη δημιουργία και/ή τη συμπλήρωση πινάκων.

mysqldump-u root -p -f name_database >

Με αυτή την ομάδα κάνουμε δημιουργία αντιγράφων ασφαλείας βάσης δεδομένωνδεδομένα κάτω από το όνομα name_database για τη μονάδα δίσκου C στο αρχείο mydb_backup_name_database.txt

Δεν χρειάζεται να δημιουργήσετε το αρχείο Η MySQL θα το δημιουργήσει μόνη της.

mysql-u root -p -f name_database< C:\mydb_backup_name_database.txt

Με αυτήν την εντολή εισάγουμε δεδομένα αντιγράφων ασφαλείας από το αρχείο C:\mydb_backup_name_database.txt

Σημείωση: -f, --force είναι μια επιλογή που καθορίζει τη συνέχιση ακόμη και αν ληφθεί ένα σφάλμα SQL, π.χ. αγνοήστε τα σφάλματα. Για παράδειγμα, εάν υπάρχει ήδη μια ίδια σειρά στον πίνακα.

Για να αποφύγετε να ζητήσετε κωδικό πρόσβασης, πρέπει να τον γράψετε αμέσως μετά το -p, δηλαδή χωρίς κενά. Εάν ο κωδικός πρόσβασης Pwd, τότε το παράδειγμα θα μοιάζει με αυτό:

mysqldump-u ρίζα -ρ Pwd-f name_database > C:\mydb_backup_name_database.txt

Εάν χρησιμοποιείτε συχνά αυτή την εντολή, τότε είναι καλύτερο να δημιουργήσετε έναν ξεχωριστό χρήστη με τα απαραίτητα δικαιώματα για να μειώσετε την ορατότητα του κωδικού πρόσβασης root

Ας εξετάσουμε περισσότερα καλές ρυθμίσεις mysqldump:

--Βάσεις δεδομένωνεπιτρέπει στο mysqldump να συμπεριλάβει τις εντολές CREATE DATABASE /*!33333 IF NOT EXISTS*/ DBNAME και USE DBNAME στο σενάριο ανάκτησης. Αυτό θα σας επιτρέψει να δημιουργήσετε βάσεις δεδομένων εργασίας από την αρχή. Δηλαδή, χωρίς τη χρήση βάσεων δεδομένων, θεωρείται ότι ο χρήστης επαναφέρει μια ενιαία βάση δεδομένων και προσδιορίζει ρητά πού πρέπει να τοποθετηθούν τα δεδομένα που έχουν αποκατασταθεί. Εάν δημιουργηθεί ένα αντίγραφο ασφαλείας με στόχο τη δημιουργία ενός πλήρως λειτουργικού αντιγράφου των δεδομένων, για παράδειγμα, σε άλλο διακομιστή MySQL, τότε πρέπει να χρησιμοποιήσετε αυτό το κλειδί.

--όλες οι βάσεις δεδομένωνσας επιτρέπει να δημιουργείτε αντίγραφα όλων των βάσεων δεδομένων που υπάρχουν αυτόν τον διακομιστή MySQL. Εάν χρειάζεται να δημιουργήσετε αντίγραφα μόνο ορισμένων βάσεων δεδομένων, πρέπει απλώς να τις καθορίσετε διαχωρισμένες με ένα κενό κατά την κλήση του mysqldump από γραμμή εντολών(βλέπε παραπάνω);

Κλειδί --βοήθεια. Το πρόγραμμα mysqldump έχει πολλές εκδόσεις. Μπορείτε να δείτε ποιες δυνατότητες υποστηρίζονται συγκεκριμένα από την έκδοσή σας χρησιμοποιώντας αυτό το κλειδί.

--add-drop-table- ένας διακόπτης που θα αναγκάσει το mysqldump να προσθέσει μια εντολή drop table στο σενάριο που προκύπτει πριν από τη δημιουργία πινάκων. Αυτό θα σας επιτρέψει να αποφύγετε ορισμένα σφάλματα κατά την επαναφορά μιας βάσης δεδομένων από ένα αντίγραφο ασφαλείας. Φυσικά, πρέπει να λάβετε υπόψη ότι οι πίνακες που βρίσκονται στο αντίγραφο εργασίας (εάν υπάρχουν πίνακες με το ίδιο όνομα στο αντίγραφο ασφαλείας) θα διαγραφούν από την κύρια βάση δεδομένων και θα αναδημιουργηθούν από το αντίγραφο ασφαλείας πριν από την επαναφορά από το αντίγραφο ασφαλείας.

--χωρίς δεδομένα. Χρησιμοποιώντας αυτό το κλειδί, μπορείτε να δημιουργήσετε γρήγορα ένα αντίγραφο της δομής πίνακα/βάσης δεδομένων χωρίς τα ίδια τα δεδομένα. Για παράδειγμα, έχετε δημιουργήσει έναν σύνθετο πίνακα και θέλετε να αποθηκεύσετε τη δομή του για το μέλλον, αλλά δεν χρειάζεστε τα ίδια τα δεδομένα που βρίσκονται σε αυτόν τον πίνακα σε ένα αντίγραφο ασφαλείας.

--αρχείο-αποτέλεσμα=...- αυτός ο διακόπτης μπορεί να χρησιμοποιηθεί για να ανακατευθύνει την έξοδο σε ένα αρχείο. Μπορείτε να χρησιμοποιήσετε την κανονική ανακατεύθυνση Unix με την εντολή ">" ή μπορείτε να χρησιμοποιήσετε αυτό το κλειδί. Σε ποιον αρέσει τι?

Ένα άλλο πολύ χρήσιμες συμβουλέςσχετικά με τη χρήση του mysqldump σε περιβάλλον φιλοξενίας. Κατά κανόνα, κατά τη χρήση φιλοξενίας, επιβάλλονται ορισμένοι περιορισμοί στον χρήστη. Για παράδειγμα, δεν μπορείτε να δανειστείτε περισσότερο από ένα συγκεκριμένο ποσό φυσική μνήμη(RAM, RAM). Το mysqldump από προεπιλογή τοποθετεί όλα τα δεδομένα που λαμβάνονται από τον διακομιστή MySQL στη μνήμη και στη συνέχεια τα εγγράφει όλα στο δίσκο. Αντίστοιχα, εάν ο πάροχος σάς επιτρέπει να δανειστείτε, για παράδειγμα, 30 MB μνήμης και η βάση δεδομένων, την οποία αντιγράφετε χρησιμοποιώντας το mysqldump, καταλαμβάνει 50 MB, φυσικά, θα προκύψει ένα σφάλμα - το mysqldump δεν θα μπορεί να λειτουργήσει σωστά και θα κολλήσει, για το οποίο θα σας ενημερώσει. Για να "αναγκάσετε" το mysqldump να γράψει δεδομένα απευθείας στο δίσκο, αντί να τα αποθηκεύσει, έστω και προσωρινά, στη μνήμη, χρησιμοποιήστε το κλειδί --γρήγορα. Αυτό θα λύσει το πρόβλημα.

Ακολουθούν μερικά ακόμη χρήσιμα παραδείγματα:

mysqldump -u root -p Pwd-f --default-character-set=cp1251 DBNAME| gzip -c > filename.txt .gz

Μπορείτε να αποσυσκευάσετε ένα τέτοιο αρχείο με την εντολή:

gunzip filename.txt.gz

Για να μάθετε ποια ημερομηνία έγινε το αντίγραφο ασφαλείας, μπορείτε να γράψετε την ακόλουθη εντολή:

mysqldump -uLOGIN -PPORT -hHOST -pPASS DBNAME | gzip -c > `ημερομηνία "+%Y-%m-%d"`.gz

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

σειρά DBCHARACTER= utf8

σειρά DBNAME= παραβίαση

mysqldump -u root -p Pwd-f --default-character-set=$ DBCHARACTER $DBNAME| bzip2 -c > sql. $DBNAME.`ημερομηνία "+%Y-%m-%d"`.bz2

Εάν θέλετε να αυτοματοποιήσετε την αφαίρεση παλαιών αρχείων, δοκιμάστε να χρησιμοποιήσετε το cron και την εντολή find, η οποία συνήθως βρίσκεται στο unix. Τρέξιμο περιοδικά

εύρημα~/directory-with-archives -name "*.gz" -mtime +7 -exec rm -f () \;

Έτσι, θα διαγράψετε αρχεία που είναι "παλαιότερα" από επτά ημέρες.

Χρησιμότητα mysqldumpχρησιμεύει για τη δημιουργία αντιγράφων ασφαλείας και την επαναφορά αντιγράφων ασφαλείας (συχνά αποκαλούμενα "dumps") των βάσεων δεδομένων και πίνακες MySQL. Το βοηθητικό πρόγραμμα έχει σχεδιαστεί για τη γραμμή εντολών και εκτελείται σε λειτουργικά συστήματα συστήματα Windows, FreeBSD και μερικά άλλα. Το Mysqldump είναι λογισμικό που διανέμεται ελεύθερα και δεν απαιτεί καμία πληρωμή.

Για τοπικό αντίγραφοβάσεις Δεδομένα MySQLμε τους τύπους πινάκων ISAM και MyISAM, είναι καλύτερο να χρησιμοποιήσετε ένα βοηθητικό πρόγραμμα γραμμένο σε Perl: mysqlhotcopy. Λειτουργεί πολύ πιο γρήγορα από το mysqldump, αφού αντιγράφει ολόκληρα τα αρχεία βάσεων δεδομένων *.frm, *.myd και *.myi, έχοντας προηγουμένως κλειδώσει τους πίνακες. Επίσης, για σωστή λειτουργίαΤο mysqlhotcopy απαιτεί βοηθητικά προγράμματα Unix: cp ή scp. Για πίνακες τύπου InnoDB, το mysqlhotcopy δεν θα λειτουργήσει, καθώς δεν αποθηκεύονται όλα τα αρχεία πίνακα InnoDB στον τυπικό κατάλογο βάσης δεδομένων MySQL.

Παραδείγματα χρήσης mysqldump

Η βασική σύνταξη του mysqldump είναι:

mysqldump [OPTIONS] βάση δεδομένων [πίνακες]
mysqldump [ OPTIONS] -- βάσεις δεδομένων [ OPTIONS] DB1 [ DB2 DB3... ]
mysqldump [OPTIONS] -- όλες οι βάσεις δεδομένων [OPTIONS]

Χωρίς τον καθορισμό ονομάτων πινάκων ή τη χρήση των επιλογών --databases ή --all-databases, θα ληφθεί μια ένδειξη όλων των βάσεων δεδομένων που βρίσκονται στη MySQL.

Γράψτε μια ένδειξη δεδομένων βάσης δεδομένων από έναν απομακρυσμένο διακομιστή MySQL με διεύθυνση 127.0.0.2 στον τοπικό υπολογιστή στο αρχείο dump_db.sql:

mysqldump - uroot - h127.0.0.2 - p db_name > dump_db.sql

Επαναφέρω Βάση δεδομένων MySQL db_name ενεργοποιημένο απομακρυσμένος διακομιστήςστο 127.0.0.2 από χωματερή που βρίσκεται στο τοπικός υπολογιστής, στο αρχείο dump_db.sql:

mysql - uroot - h127.0.0.2 - p db_name< dump_db.sql

Γράψτε μια ένδειξη των βάσεων δεδομένων MySQL (βάση δεδομένων1, βάση δεδομένων2, βάση δεδομένων3) που βρίσκονται σε έναν απομακρυσμένο διακομιστή στη διεύθυνση 127.0.0.2 στο τοπικό αρχείο dump_db.sql:

mysqldump - uroot - h127.0.0.2 - p - B database1 database2 database3 > dump_db.sql

Δειγματοληψία όχι περισσότερων από 50 εγγραφών (για παράδειγμα, δεν απαιτείται πλήρες αντίγραφο της βάσης δεδομένων για τη δοκιμή):

Αντιγράψτε τις βάσεις δεδομένων MySQL σε έναν απομακρυσμένο υπολογιστή:

mysqldump -- opt database | mysql -- host= remote- host - βάση δεδομένων C

Αντιγράψτε μόνο τη δομή της βάσης δεδομένων MySQL:

mysqldump - uroot - hh127.0.0.2 - p -- no- data my_dbname > my_db_structure.sql

Το βοηθητικό πρόγραμμα mysqldump, που χρησιμοποιείται χωρίς τις επιλογές --opt ή --quick, θα γράψει ολόκληρο το αποτέλεσμα της εργασίας του στη μνήμη πριν απορρίψει το αποτέλεσμα της ανάκτησης πληροφοριών. Αυτό μπορεί να προκαλέσει προβλήματα κατά την απόρριψη μιας μεγάλης βάσης δεδομένων. Σημειώστε επίσης ότι δεν χρειάζεται να χρησιμοποιήσετε τις επιλογές --opt ή -e εάν σκοπεύετε να τις χρησιμοποιήσετε για να αποκτήσετε μια ένδειξη νέο αντίγραφοπρόγραμμα mysqldump και στη συνέχεια παίξτε το σε έναν πολύ παλιό διακομιστή MySQL.

Όλες οι παράμετροι του βοηθητικού προγράμματος mysqldump μπορούν να προβληθούν εκτελώντας το ως εξής:

mysqldump --βοήθεια

Τυπική λίστα παραμέτρων mysqldump με σύντομη περιγραφήαναρτήθηκε παρακάτω:

--add-drop-database
Προσθέτει DROP DATABASE πριν από κάθε δήλωση CREATE DATABASE.

--add-drop-table
Προσθέτει ένα DOP TABLE πριν από κάθε δήλωση CREATE TABLE.

--add-locks
Προσθέτει LOCK TABLE πριν από την εκτέλεση και UNLOCK TABLE μετά την εκτέλεση κάθε ένδειξης πίνακα (για να επιταχύνει την πρόσβαση στη MySQL).

--όλες οι βάσεις δεδομένων, -Α
Αποθηκεύει όλους τους πίνακες από όλες τις βάσεις δεδομένων που διαχειρίζεται ο τρέχων διακομιστής.

--επιτρέπω-λέξεις-κλειδιά
Να επιτρέπεται η δημιουργία ονομάτων στηλών που ταιριάζουν με λέξεις-κλειδιά. Η αποφυγή διενέξεων διασφαλίζεται με την προσθήκη του ονόματος του πίνακα ως πρόθεμα στο όνομα κάθε στήλης.

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

--συμπαγής
Αυτή η επιλογή λέει στο mysqldump να δημιουργήσει ένα dump χρησιμοποιώντας την πιο συμπαγή δυνατή μορφή. Η επιλογή είναι αντίθετη από τα --σχόλια.

--συμβατό=όνομα
Η επιλογή δημιουργεί έξοδο που είναι συμβατό με άλλα DBMS ή παλαιότερες εκδόσεις της MySQL. Αντί για τη λέξη-κλειδί ονόματος, μπορείτε να χρησιμοποιήσετε: "ansi", "mysql323", "mysql40", "postgresql", "oracle", "mssql", "db2", "maxdb", "no_key_options", "no_table_options", "no_field_options" . Μπορείτε να χρησιμοποιήσετε πολλές τιμές, διαχωρισμένες με κόμμα.

--συμπλήρωση-εισαγωγή, -γ
Μεταχειρισμένος πλήρη μορφή INSERT δήλωση (με ονόματα στηλών).

--δημιουργία-επιλογές
Προσθέτει πρόσθετες πληροφορίες στις δηλώσεις CREATE TABLE. Αυτός μπορεί να είναι ο τύπος του πίνακα, η αρχική τιμή AUTO_INCREMENT και άλλες παράμετροι.

--βάσεις δεδομένων, -Β
Αυτή η επιλογή σάς επιτρέπει να καθορίσετε τα ονόματα πολλών βάσεων δεδομένων για τις οποίες θέλετε να κάνετε απόρριψη.

--καθυστέρησε
Χρησιμοποιήστε την εντολή INSERT DELAYED κατά την εισαγωγή σειρών.

--delete-master-logs
Ο κύριος διακομιστής αναπαραγωγής διαγράφει αυτόματα τα δυαδικά αρχεία καταγραφής (logbin) μετά την επιτυχή δημιουργία μιας ένδειξης αποτύπωσης χρησιμοποιώντας το mysqldump. Αυτή η επιλογή ενεργοποιεί αυτόματα την επιλογή "--master-data".

--απενεργοποίηση-πλήκτρα, -Κ

Για κάθε πίνακα, περιβάλετε την πρόταση INSERT με εκφράσεις /*!40000 ALTER TABLE tbl_name DISABLE KEYS */; και /*!40000 ALTER TABLE tbl_name ENABLE KEYS */; στην έξοδο του αποτελέσματος dump. Αυτό θα επιταχύνει τη φόρτωση δεδομένων στον διακομιστή για πίνακες όπως το MyISAM, καθώς τα ευρετήρια δημιουργούνται μετά την εισαγωγή όλων των δεδομένων.

--extended-insert, -e
Χρησιμοποιήστε την εντολή INSERT με τη νέα σύνταξη πολλαπλών γραμμών (βελτιώνει τη συμπαγή και απόδοση των δηλώσεων εισαγωγής).

--flush-logs, -F
Εγγραφή δεδομένων στο δίσκο syslogαπό το buffer του διακομιστή MySQL πριν από την έναρξη της ένδειξης.

--δύναμη, -f
Συνεχίστε ακόμα κι αν προέκυψε σφάλμα κατά τη διαδικασία δημιουργίας dump.

--εξάγωνο
Η παράμετρος σάς επιτρέπει να αναπαραστήσετε δυαδικά δεδομένα σε πεδία των τύπων BINARY, VARBINARY, BLOB και BIT σε δεκαεξαδική μορφή. Έτσι η ακολουθία "abc" θα αντικατασταθεί με 0x616263.

--ignore-table=db_name.tbl_name
Σας επιτρέπει να αγνοήσετε τον πίνακα tbl_name της βάσης δεδομένων db_name κατά τη δημιουργία μιας ένδειξης ένδειξης. Εάν πρέπει να εξαιρέσετε πολλούς πίνακες από το dump, πρέπει να χρησιμοποιήσετε πολλές παραμέτρους "--ignore-table", καθορίζοντας έναν πίνακα σε κάθε παράμετρο.

--εισαγωγή-αγνοώ
Προσθέτει λέξη-κλειδί IGNORE σε μια δήλωση INSERT.

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

--κλειδωμα-τραπεζια, -λ
Ο καθορισμός αυτής της παραμέτρου κλειδώνει τους πίνακες στη βάση δεδομένων που απορρίπτονται.

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

--no-create-db, -n
Καταργεί την απόρριψη των δηλώσεων CREATE DATABASE που προστίθενται αυτόματα κατά τη χρήση των επιλογών --databases και --all-databases.

--χωρίς-δεδομένα, -δ
Καταστέλλει τη δημιουργία εντολών INSERT σε μια ένδειξη ένδειξης, η οποία μπορεί να είναι χρήσιμη κατά την απόρριψη μιας δομής βάσης δεδομένων χωρίς τα ίδια τα δεδομένα.

--επιλέγω
Η παράμετρος προορίζεται για τη βελτιστοποίηση της ταχύτητας δημιουργίας αντιγράφων ασφαλείας δεδομένων και είναι μια συντομογραφία που περιλαμβάνει τις ακόλουθες επιλογές: --γρήγορη --προσθήκη-απόθεση-πίνακα --προσθήκη-κλειδώματα --δημιουργία-επιλογές --απενεργοποίηση-πλήκτρα --εκτεταμένα- εισαγωγή --lock-tables --set-charset. Από την MySQL 4.1, η επιλογή --opt χρησιμοποιείται από προεπιλογή, π.χ. Όλες οι παραπάνω επιλογές είναι ενεργοποιημένες από προεπιλογή, ακόμα κι αν δεν έχουν καθοριστεί. Για να εξαιρέσετε αυτήν τη συμπεριφορά, πρέπει να χρησιμοποιήσετε την παράμετρο --skip-opt

--παραγγελία κατά πρωτοβάθμιο
Ο καθορισμός μιας παραμέτρου προκαλεί αυτό να συμβεί. ότι κάθε πίνακας ταξινομείται κατά πρωτεύων κλειδίή το πρώτο μοναδικό ευρετήριο.

--λιμάνι, -Ρ
Αριθμός Θύρα TCP, χρησιμοποιείται για σύνδεση με τον κεντρικό υπολογιστή.

--protocol=(TCP|ΠΡΟΔΟΧΗ|ΣΩΛΗΝΑ|ΜΝΗΜΗ)
Αυτή η παράμετρος σάς επιτρέπει να ορίσετε το πρωτόκολλο για τη σύνδεση στον διακομιστή.

--γρήγορος, -q
Σας επιτρέπει να ξεκινήσετε τη δημιουργία χωματερής χωρίς αναμονή πλήρες φορτίοδεδομένα από το διακομιστή και εξοικονόμηση μνήμης.

-- εισαγωγικά-ονόματα, -Q
Περικλείει τα ονόματα βάσης δεδομένων, πινάκων και στηλών με backticks `. Από την MySQL 4.1, αυτή η επιλογή είναι ενεργοποιημένη από προεπιλογή.

--αντικαθιστώ
Προσθέτει τη λέξη-κλειδί REPLACE στη δήλωση INSERT. Αυτή η επιλογή εμφανίστηκε για πρώτη φορά στο MySQL 5.1.3.

--result-file=/path/to/file, -r /path/to/file
Η παράμετρος κατευθύνει το dump στο αρχείου. Αυτή η επιλογή είναι ιδιαίτερα χρήσιμη στα Windows, χωρίς τη χρήση της γραμμής εντολών. όταν μπορείτε να ανακατευθύνετε το αποτέλεσμα σε ένα αρχείο χρησιμοποιώντας τις ακολουθίες > και >>.

--Ρουτίνες, -R
Αυτή η επιλογή δημιουργεί μια ένδειξη αποθηκευμένων διαδικασιών και συναρτήσεων. Διατίθεται με MySQL 5.1.2.

--μονοσυναλλαγή
Η επιλογή δημιουργεί μια ένδειξη dump ως μία μόνο συναλλαγή.

--παράβλεψη-σχόλια
Αυτή η παράμετρος σάς επιτρέπει να καταστείλετε την έξοδο πρόσθετων πληροφοριών στην απόρριψη.

--socket=/path/to/socket, -S /path/to/socket
Αρχείο υποδοχής για σύνδεση με localhost.

--tab=/path/, -T /path/
Χρησιμοποιώντας αυτήν την επιλογή δημιουργούνται δύο ξεχωριστά αρχεία στον κατάλογο διαδρομής για κάθε πίνακα: tbl_name.sql, που περιέχει τη δήλωση CREATE TABLE και tbl_name.txt, που περιέχει τα δεδομένα πίνακα οριοθετημένων με στηλοθέτες. Η μορφή δεδομένων μπορεί να παρακαμφθεί ρητά χρησιμοποιώντας τις επιλογές --fields-xxx και --lines-xxx.

-- τραπέζια
Αντικαθιστά την επιλογή --databases (-B). Όλα τα ορίσματα που ακολουθούν αυτήν την παράμετρο αντιμετωπίζονται ως ονόματα πινάκων.

--πυροδοτήσεις
Δημιουργείται μια ένδειξη σκανδάλης. Αυτή η επιλογή είναι ενεργοποιημένη από προεπιλογή. Για να το απενεργοποιήσετε, χρησιμοποιήστε την επιλογή --skip-triggers.

--tz-utc
χρησιμοποιώντας αυτή η παράμετροςένας τελεστής της φόρμας SET TIME_ZONE="+00:00" θα προστεθεί στη χωματερή, η οποία θα επιτρέψει την ανταλλαγή απορριμμάτων σε διαφορετικές ζώνες ώρας.

--περιπετειώδης, -v
Προηγμένη λειτουργία εξόδου. Συμπέρασμα περισσότερα λεπτομερείς πληροφορίεςσχετικά με τις εργασίες του προγράμματος.

--έκδοση, -V
Εμφάνιση πληροφοριών σχετικά με την έκδοση του προγράμματος.

--where="where-condition", -w "where-condition"
Απόρριψη μόνο των επιλεγμένων εγγραφών. Λάβετε υπόψη ότι απαιτούνται εισαγωγικά: "--where=user="test"" "-wuserid>1" "-wuserid

--xml, -X
Αντιπροσωπεύει μια ένδειξη αποθήκευσης βάσης δεδομένων ως XML.

--πρώτος-δούλος, -χ
Κλειδώνει όλους τους πίνακες σε όλες τις βάσεις δεδομένων.

--debug=..., -#
Παρακολούθηση της προόδου ενός προγράμματος (για αποσφαλμάτωση).

--βοήθεια
Εμφανίζεται η Βοήθεια και το πρόγραμμα τελειώνει.

Mysqldump - τεκμηρίωση και παραδείγματα.

Η ιδέα του άρθρου είναι να δημιουργήσει έναν οδηγό υψηλής ποιότητας για την εγκατάσταση και την εργασία με το πρόγραμμα mysqldump. Χρησιμοποιώντας πολλά παραδείγματα και συλλέγοντας τα πάντα χρήσιμες επιλογέςκαι παραμέτρους για την εργασία με αυτό το βοηθητικό πρόγραμμα. Είναι δύσκολο να χωρέσετε τα πάντα σε ένα άρθρο, επομένως όλα θα είναι σύντομα και ουσιαστικά. Αν κάποιος παρεξηγήσει κάτι ας σχολιάσει το άρθρο.

Ενότητες:

Εγκατάστασηmysqldump:

Τι είναι το mysqldump;

MySQLdump- Αυτό εφαρμογή διακομιστή, το οποίο σας επιτρέπει να δημιουργείτε αντίγραφα ασφαλείας (εφεξής καλούμενες ως dump) βάσεων δεδομένων και να τις αποθηκεύετε ξεχωριστό αρχείο. Σε αυτή την περίπτωση είναι δυνατό να πραγματοποιηθεί ευέλικτες ρυθμίσεις dump: πολλές ή όλες οι βάσεις δεδομένων, αρχειοθέτηση gzip, προσθήκη εντολών κλειδώματος, απόθεση και πολλά άλλα. Είναι επίσης δυνατή η αντίστροφη εισαγωγή αντιγράφων ασφαλείας βάσης δεδομένων. Μπορεί να γίνει με χρησιμοποιώντας PHP, αλλά αυτό είναι απαράδεκτο για μεγάλα έργα που έχουν μεγάλο βάρος δεδομένων.

Αυτό το πρόγραμμα είναι πολύ χρήσιμο για την εξαγωγή και εισαγωγή δεδομένων από μια βάση δεδομένων. Μπορεί να εγκατασταθεί στάνταρ στο hosting σας (πιο συγκεκριμένα διακομιστής mysql). Αλλά για να βελτιώσετε τις δεξιότητές σας στην εργασία με το mysqldump και να μάθετε πώς να το εγκαταστήσετε, μπορείτε να το εγκαταστήσετε στο denwer. Αυτό θα κάνουμε τώρα.

Κατεβάστε το mysqldump

Μπορείτε πάντα να κάνετε λήψη του προγράμματος mysqldump στον ιστότοπό μας και η λήψη της εφαρμογής είναι εντελώς δωρεάν. Κατεβάστε το mysqldump από τον άμεσο σύνδεσμο παρακάτω.

Πώς να εγκαταστήσετε το mysqldump;

Θα εγκαταστήσουμε σε τοπικός διακομιστής Denwer. Η εγκατάσταση της εφαρμογής είναι εύκολη και απλή, για να το κάνετε αυτό, ακολουθήστε τις οδηγίες και τα στιγμιότυπα οθόνης που παρέχονται παρακάτω.

1. Αντιγράψτε το αρχείο mysqldump.exe στο φάκελο Denver:

D:\WebServers\usr\local\mysql5\bin\
Σε αυτήν την περίπτωση, μπορεί να έχετε ένα ελαφρώς διαφορετικό όνομα για το φάκελο mysql5, για παράδειγμα mysql-5.1 ή ελαφρώς τροποποιημένο. Επομένως, για μεγαλύτερη σαφήνεια, ακολουθεί ένα στιγμιότυπο οθόνης:

2. Εκκινήστε το Ντένβερ

Σίγουρα και εσείς οι ίδιοι ξέρετε πώς να λανσάρετε το Denwer.


3. Εκκινήστε την κονσόλα:

Έναρξη->Εκτέλεση->cmd.exeή στα Windows 7: Έναρξη->Αναζήτηση->Εισαγωγήcmd.exe->Εισαγω, όπως φαίνεται στο στιγμιότυπο οθόνης:

4. Δοκιμή:

Χρησιμοποιώντας τις εντολές στην κονσόλα, μεταβείτε στον εικονικό δίσκο του Ντένβερ (έχω το W:\) και στο φάκελο με την εφαρμογή mysqldump. Για να επιβεβαιώσετε την εκτέλεση της εντολής, πατήστε Enter.

Εισαγάγετε τις εντολές:

W:- μεταβείτε στον εικονικό δίσκο του Ντένβερ

CDusr\τοπικός\mysql5\αποθήκη– μεταβείτε στο φάκελο με την εφαρμογή

mysqldump -uroot your_db_name>file_name.sql– δοκιμή, απόθεση μιας αυθαίρετης βάσης δεδομένων σε ένα αρχείο, το οποίο θα αποθηκευτεί στον φάκελο bin.

Η εγκατάστασή μου ήταν επιτυχής, ελπίζω να είναι και η δική σας. Στο φάκελο bin βρίσκουμε το αρχείο backup της βάσης δεδομένων. Για να μάθετε πώς να χρησιμοποιείτε το πρόγραμμα ευρύτερα, διαβάστε τις ακόλουθες ενότητες του άρθρου.

Ξεκινώντας: εξαγωγή και εισαγωγή βάσης δεδομένων

Εξαγωγή βάσης δεδομένων

Έχουμε ήδη εγκαταστήσει την εφαρμογή και μάθαμε πώς να χρησιμοποιούμε την κονσόλα. Έχουμε ήδη κάνει μια δοκιμαστική χωματερή. Τώρα ας κάνουμε μια απλή απόθεση βάσης δεδομένων στον κατάλογο που χρειαζόμαστε. Για να γίνει αυτό, δημιούργησα μια βάση δεδομένων που χρησιμοποιήθηκε στο παρελθόν με την ονομασία "test". Βρίσκεται στον τοπικό διακομιστή denwer. Ακολουθούν οι εντολές της κονσόλας βήμα προς βήμα για την απόρριψη της δοκιμαστικής βάσης δεδομένων στον επιθυμητό φάκελο και αρχείο.

W: cdusr\local\mysql5\bin mysqldump -uroot test>D:\test\easydump.sql

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

Η εξαγωγή ολοκληρώθηκε με επιτυχία. Τώρα ας προσπαθήσουμε να επαναφέρουμε αυτό το αρχείο στον διακομιστή μας.

Εισαγωγή βάσεων δεδομένων

Για να εισαγάγετε τη βάση δεδομένων, διαγράψτε τη βάση δεδομένων στο phpmyadmin και χρησιμοποιήστε την ακόλουθη εντολή στο cmd.exe:

Mysql -uroot test

Σημαντική σημείωση: εάν κατά την εξαγωγή χρησιμοποιήσαμε mysqldump..., τότε κατά την εισαγωγή πρέπει να ξεκινήσετε την εντολή με mysql. Αυτό το παράδειγμα είναι μια βασική χρήση της εφαρμογής mysqldump για τη δημιουργία αντιγράφων ασφαλείας βάσης δεδομένων. Θα βρείτε ακόμη περισσότερες εντολές και παραδείγματα στην ενότητα και το άρθρο.

Παραδείγματα MySQLdump

Παρακάτω είναι τα πιο συχνά χρησιμοποιούμενα παραδείγματα χρήσης του mysqldump. Με το οποίο μπορείτε όχι μόνο να δημιουργήσετε αντίγραφα ασφαλείας, αλλά και να προσθέσετε κάποιες παραμέτρους Κρατήστε αντίγραφο: συμπίεση με χρήση gzip, προσθήκη ημερομηνίας αντιγράφου ασφαλείας, απόρριψη μόνο μερικών πινάκων ή δομής βάσης δεδομένων, με χρήση ευέλικτων ρυθμίσεων. Αυτές οι ρυθμίσεις σάς επιτρέπουν να αυξήσετε την ταχύτητα της εκτέλεσης dump και να χρησιμοποιήσετε με φειδώ χώρο στο δίσκο.

Δημιουργία χωματερής

mysqldump –uUSER -h82.82.82.82 -pPASSWORD DATABASE > /path/to/file/dump.sql

-uή --χρήστης=...- Όνομα χρήστη

ή --οικοδεσπότης=... - απομακρυσμένος υπολογιστής(για localhost μπορείτε να παραλείψετε αυτήν την παράμετρο)

ή --Κωδικός πρόσβασης- ζητήστε κωδικό πρόσβασης

βάση δεδομένων- όνομα της εξαγόμενης βάσης δεδομένων

/path/to/file/dump.sql- διαδρομή και αρχείο για dump

Αποθέτουμε πολλές βάσεις δεδομένων, για αυτό χρησιμοποιούμε το χαρακτηριστικό --databases ή –B για συντομία, δείτε το παρακάτω παράδειγμα:

Mysqldump -uroot -h82.82.82.82 -p -B database1 database2 database3 > databases.sql

Εάν θέλετε να δημιουργήσετε μια ένδειξη όλων των βάσεων δεδομένων, πρέπει να χρησιμοποιήσετε την παράμετρο –all-databases ή –A σε συντομευμένη μορφή, δείτε το παράδειγμα:

Mysqldump -uroot -h82.82.82.82 -p -A > all-databases.sql

Δημιουργία δομής βάσης δεδομένων χωρίς δεδομένα

Για να το κάνετε αυτό, πρέπει να χρησιμοποιήσετε την παράμετρο --no-data όπως φαίνεται στο παρακάτω παράδειγμα:

Mysqldump --no-data - uUSER -pPASSWORD DATABASE > /path/to/file/schema.sql

Δημιουργούμε μια ένδειξη μόνο ενός ή περισσότερων πινάκων βάσης δεδομένων

mysqldump -uUSER -pPASSWORD DATABASE TABLE1 TABLE2 TABLE3 > dump.sql

Δημιουργήστε ένα dump και αρχειοθετήστε τοgzip

mysqldump -u ΧΡΗΣΤΗΣ -pPASSWORD ΒΑΣΗ ΔΕΔΟΜΕΝΩΝ | gzip > /path/to/outputfile.sql.gz

Δημιουργήστε ένα dump με την ημερομηνία στο όνομα του αρχείου

mysqldump -uUSER -pPASSWORD ΒΑΣΗ ΔΕΔΟΜΕΝΩΝ | gzip > `ημερομηνία +dump.sql.%Y%m%d.%H%M%S.gz`

Χρήση πρόσθετων χαρακτηριστικών

mysqldump -Q -c -e -uUSER -pPASSWORD DATABASE > /path/to/file/dump.sql

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

- Εραναδιπλώνει ονόματα σε οπισθοσαγωγικά

-ντοκάνει πλήρη εισαγωγή, συμπεριλαμβανομένων των ονομάτων στηλών

-μικάνει ένα εκτεταμένο ένθετο.