Εργασία με τη βάση δεδομένων. MySQL. MySQL - Εντολές της κονσόλας των Windows

Γεια σας, αγαπητοί αναγνώστες του ιστολογίου, ήρθε η ώρα να αλλάξετε το συνηθισμένο phpMyAdmin, με ένα πιο βάναυσο εργαλείο για τη διαχείριση βάσεων δεδομένων. Σήμερα θα αποκτήσουμε μια αίσθηση για την κονσόλα MySQL και θα μάθουμε πώς να εκτελούμε τυπικές εντολές, καθώς και εντολές ανάκτησης βάσης δεδομένων. Κονσόλα MySQL- αυτό είναι ένα τυπικό DBMS (Σύστημα διαχείρισης βάσης δεδομένων)για MySQL, που παρέχεται με το προϊόν.

Πότε μπορεί να σας φανεί χρήσιμη η κονσόλα MySQL;

Από τη σκοπιά ενός αρχάριου προγραμματιστή Ιστού, phpMyAdminεκτελεί όλα τα απαραίτητα για κανονική λειτουργίαλειτουργίες. Φανταστείτε ότι δεν είστε μόνο προγραμματιστής Ιστού, αλλά και, εν μέρει, διαχειριστής συστήματος που είναι υποχρεωμένος να επαναφέρει τη βάση δεδομένων μετά από μια αποτυχία.

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

Πώς να ξεκινήσετε την κονσόλα MySQL

Μπορείτε να εκκινήσετε την κονσόλα μέσω της Εξερεύνησης των Windows, βρίσκοντας το βοηθητικό πρόγραμμα mysql.exe στο φάκελο MySQL. Συνήθως βρίσκεται στη διεύθυνση: [διαδρομή προς το φάκελο]\mysql\bin\mysql.exe. Εάν χρησιμοποιείτε το Ντένβερ, Κονσόλα MySQL, θα πρέπει να κοιτάξετε προς αυτή την κατεύθυνση:
C:\WebServer\usr\local\mysql\bin\mysql.exe

Εκτός Windows Explorer, μπορείτε να χρησιμοποιήσετε τη γραμμή εντολών:

Θα πρέπει να δείτε κάτι σαν αυτό:

Το σφάλμα υποδεικνύει ότι για να ξεκινήσετε την κονσόλα mysql πρέπει να εισαγάγετε τα στοιχεία σύνδεσης και τον κωδικό πρόσβασης του χρήστη. Όταν εργάζεστε με το Ντένβερ, τυπικός χρήστηςΗ βάση δεδομένων είναι root με κενό κωδικό πρόσβασης.
Εκτελέστε την ίδια εντολή με πρόσθετες παραμέτρους που υποδεικνύουν δεδομένα εξουσιοδότησης.

C:\WebServer\usr\local\mysql-5.1\bin\mysql.exe –u root –p

Εάν όλα γίνουν σωστά, θα λάβετε το μήνυμα " Καλώς ήρθατε στην κονσόλα MySQL..."

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

Ας προσπαθήσουμε να επιλέξουμε μία από τις βάσεις δεδομένων και να δούμε τη λίστα των πινάκων σε αυτήν:

δοκιμή χρήσης? Εμφάνιση πινάκων.

Στο παράδειγμά μου, αναφέρομαι στη δοκιμαστική βάση δεδομένων, εάν δεν έχετε, ανατρέξτε σε οποιαδήποτε άλλη διαθέσιμη.

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

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

Στο οποίο θα λάβετε ένα μήνυμα: " QUERY ΟΚ, επηρεάστηκε 1 σειρά", υποδεικνύοντας ότι η βάση δεδομένων με το όνομα test δημιουργήθηκε με επιτυχία.

Τώρα ας δημιουργήσουμε έναν πίνακα παραγγελιών στη βάση δεδομένων δοκιμής.

δημιουργία δοκιμής πίνακα (`id` int(11),`content` varchar(255));

Και εκτελέστε ξανά την εντολή show tables. , το οποίο θα δείξει ότι ο πίνακας έχει όντως δημιουργηθεί και είναι διαθέσιμος για εργασία με αυτόν.

Μπορείτε επίσης να προσπαθήσετε να εμφανίσετε μια λίστα στηλών σε έναν πίνακα:

εμφάνιση στηλών από test.order.

Λοιπόν, για να ολοκληρώσουμε τη γνωριμία μας Κονσόλα MySQL, ας εκτελέσουμε κάποιο ερώτημα:

ΕΠΙΛΟΓΗ * ΑΠΟ test.order;

Λοιπόν, αγαπητοί αναγνώστες, σας συγχαίρω, τώρα μπορείτε να εργαστείτε με τη MySQL σε σπαρταριστές συνθήκες χωρίς phpMyAdmin. Ακολουθεί μια λίστα με καθημερινές εντολές:

  • ΔΗΜΙΟΥΡΓΙΑ ΒΑΣΗΣ ΔΕΔΟΜΕΝΩΝ DB_NAME.
  • — δημιουργία νέας βάσης δεδομένων·
  • ΕΜΦΑΝΙΣΗ ΒΑΣΕΩΝ ΔΕΔΟΜΕΝΩΝ.
  • — προβολή διαθέσιμων βάσεων δεδομένων.
  • ΧΡΗΣΗ DB_NAME; — επιλέξτε βάση δεδομένων.
  • ΕΜΦΑΝΙΣΤΕ ΠΙΝΑΚΕΣ.— προβολή όλων των πινάκων.
  • ΕΜΦΑΝΙΣΗ ΣΤΗΛΩΝ ΑΠΟ ΤΟ TABLE_NAME.— προβολή στηλών και των ιδιοτήτων τους.
  • CREATE TABLE TABLE_NAME (`ID` INT(11),`NAME` VARCHAR(255));— δημιουργία πίνακα.
  • ALTER TABLE TABLE_NAME ΠΡΟΣΘΗΚΗ ΣΤΗΛΗΣ_NAME INT(11);
  • — προσθέστε μια στήλη στον πίνακα.ΑΛΛΑΓΗ ΠΙΝΑΚΑ TABLE_NAME ΑΠΟΣΤΟΛΗ ΣΤΗΛΗΣ_NAME.
  • — αφαιρέστε μια στήλη από τον πίνακα.

MYSQL -UUSERNAME -PPASSWORD -HHOST DB_NAME — συμπληρώστε τη βάση δεδομένων.

MYSQLDUMP -UUSERNAME -PPASSWORD -HHOST DB_NAME > FILE_NAME.SQL

— να δημιουργήσετε μια ένδειξη απόρριψης βάσης δεδομένων.

ΕΓΚΑΤΑΛΕΙΠΩ; — έξοδος από την κονσόλα MySQL. Εντολές για επαναφορά πινάκων μέσω της κονσόλας MySQLΌπως υποσχέθηκα στην αρχή του άρθρου, δημοσιεύω εντολές για επαναφορά πινάκων. Αυτές οι εντολές μπορεί να είναι χρήσιμες μετά από αποτυχία διακομιστή.

Τελευταία ενημέρωση: 22/12/2017 Συνήθως, οι βάσεις δεδομένων χρησιμοποιούνται ως αποθήκευση δεδομένων. Η PHP σάς επιτρέπει να χρησιμοποιείτε διάφορα συστήματα διαχείρισης βάσεων δεδομένων, αλλά το πιο δημοφιλές σήμερα σε συνδυασμό με την PHP είναι η MySQL. Η MySQL εισάγει δωρεάν λογισμικό που σας επιτρέπει να αλληλεπιδράτε με βάσεις δεδομένων χρησιμοποιώντας εντολέςΓλώσσα SQL

. Η διαδικασία εγκατάστασης και ρύθμισης παραμέτρων της MySQL έχει ήδη συζητηθεί. Για να σας διευκολύνουμε να εργάζεστε με βάσεις δεδομένωνΔεδομένα MySQL

Ας εγκαταστήσουμε ένα ειδικό σύνολο σεναρίων phpMyAdmin. Το phpMyAdmin παρέχει μια διαισθητική διεπαφή ιστού για τη διαχείριση βάσεων δεδομένων MySQL. Χρησιμοποιώντας αυτό το εργαλείο, είναι πολύ πιο εύκολο να εργαστείτε με βάσεις δεδομένων παρά να διαχειριστείτε τη MySQL μέσω της κονσόλας. Για να εγκαταστήσετε το phpMyAdmin, κατεβάστε το αρχείο και αποσυσκευάστε το σε έναν φάκελο C:\localhost

που είναι τα έγγραφα για php. Ας μετονομάσουμε τον μη συσκευασμένο φάκελο σε phpMyAdmin για συντομία. Στον μη συσκευασμένο κατάλογο phpMyAdmin, δημιουργήστε ένα αρχείο:

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

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

Δημιουργία βάσης δεδομένων MySQL στο phpMyAdmin

Για την ανταλλαγή δεδομένων με τον διακομιστή MySQL (αποθήκευση, αλλαγή, διαγραφή, ανάκτηση δεδομένων), χρειαζόμαστε φυσικά μια βάση δεδομένων. Μπορούμε να δημιουργήσουμε μια βάση δεδομένων από Κονσόλα MySQL, καθώς και από την οπτική διεπαφή phpMyAdmin.

Ας ανοίξουμε τη διεπαφή phpMyAdmin. Ας πάμε στην καρτέλα Βάσεις δεδομένων. Κάτω από την ετικέτα Δημιουργήστε μια βάση δεδομένωνΑς εισάγουμε κάποιο όνομα για τη νέα βάση δεδομένων, για παράδειγμα, compstore και κάνουμε κλικ στο κουμπί "Δημιουργία".

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

Η νέα βάση δεδομένων είναι ακόμα κενή και δεν περιέχει τίποτα. Ας προσθέσουμε έναν πίνακα σε αυτόν που θα αποθηκεύει τα δεδομένα. Για να το κάνετε αυτό, κάντε κλικ στο όνομα της βάσης δεδομένων και θα μεταφερθούμε στην καρτέλα «Δομή», όπου θα μας προσφερθούν επιλογές για τον νέο πίνακα. Στο πεδίο "Όνομα", εισαγάγετε το όνομα του νέου πίνακα. Αφήστε τον πίνακα να αποθηκεύσει δεδομένα σχετικά με μοντέλα smartphone, οπότε ας εισαγάγετε το όνομα "τηλέφωνα" και πληκτρολογήστε τον αριθμό 3 ως τον αριθμό των στηλών:

Για να δημιουργήσετε έναν πίνακα, κάντε κλικ στο κουμπί «Προώθηση». Μετά από αυτό, θα έχουμε ένα σύνολο κελιών για τη ρύθμιση των παραμέτρων στηλών. Ας υποδείξουμε διαδοχικά τα ακόλουθα για τα ονόματα των στηλών: id, name, company. Θα καθορίσουμε id ως τύπο για τις στήλες πληκτρολογήστε INT, και για τις στήλες ονόματος και εταιρείας ο τύπος είναι VARCHAR . Για τις στήλες του ονόματος και της εταιρείας, στο πεδίο "Μήκος/Τιμές", πληκτρολογήστε τον αριθμό 200 - θα υποδεικνύει μέγιστο μήκοςχορδές σε χαρακτήρες. Επίσης, για τη στήλη id, υποδεικνύετε ΚΥΡΙΑ στο πεδίο «Ευρετήριο» και τοποθετήστε ένα σημάδι επιλογής στο πεδίο «A_I» (Αυτόματη Αύξηση):

Έτσι, ο πίνακας θα έχει στήλες για Μοναδικό αναγνωριστικό, Όνομα τηλεφώνου και Όνομα κατασκευαστή. Στη συνέχεια, κάντε κλικ στο κουμπί "Αποθήκευση" παρακάτω.

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

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

ΔΗΜΙΟΥΡΓΙΑ Επιτραπέζιων τηλεφώνων1 (αναγνωριστικό INT NOT NULL AUTO_INCREMENT PRIMARY KEY, όνομα VARCHAR(200) NOT NULL, εταιρεία VARCHAR(200) NOT NULL)

Αυτό τυπική εντολήδημιουργία πίνακα σε SQL. Μετά τις λέξεις-κλειδιά CREATE Table έρχεται το όνομα δημιουργημένος πίνακας, ακολουθούμενο από ορισμούς στηλών διαχωρισμένων με κόμμα σε παρένθεση.

Κάθε ορισμός στήλης περιέχει το όνομα της στήλης, τον τύπο της και έναν αριθμό πρόσθετων τιμών. Για παράδειγμα, ο ορισμός της στήλης id (id INT NOT NULL AUTO_INCREMENT PRIMARY KEY) υποδεικνύει το όνομα της στήλης, ο τύπος είναι INT και επίσης ότι η στήλη πρέπει να έχει μια τιμή - ΟΧΙ NULL, ότι η τιμή της θα αυξάνεται αυτόματα κατά ένα με την προσθήκη ενός νέου αντικειμένου - AUTO_INCREMENT, και ότι παίζει το ρόλο ενός πρωτεύοντος κλειδιού - ΠΡΩΤΙΚΟ ΚΛΕΙΔΙ.

Γενικά, ο πίνακας που δημιουργήθηκε με αυτόν τον τρόπο θα είναι ισοδύναμος με αυτόν που δημιουργήθηκε νωρίτερα. Κάντε κλικ στο κουμπί Forward και θα δημιουργηθεί ένας δεύτερος πίνακας, phones1.

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

Μια σύντομη επισκόπηση των συστημάτων διαχείρισης βάσεων δεδομένων

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

Υπάρχει μια ορισμένη ταξινόμηση που καθορίζει την ανάγκη χρήσης μιας συγκεκριμένης βάσης δεδομένων και DBMS (σύστημα διαχείρισης βάσεων δεδομένων). Το πιο κοινό που εξετάζεται επί του παρόντος διακομιστή-πελάτητεχνολογίες αποθήκευσης δεδομένων. Αυτοί περιλαμβάνουν τους ακόλουθους τύπους: Firebird, Interbase, IBM DB2, Sybase, Oracle, PostgreSQL, Linter, MySQL. Θα μας ενδιαφέρει η τελευταία επιλογή - η MySQL, οι εντολές της οποίας συμμορφώνονται πλήρως με τα πρότυπα SQL. Αυτή η τεχνολογία είναι μια από τις δημοφιλείς και χρησιμοποιείται συχνά για την επίλυση προβλημάτων τοπικής εφαρμογής και μικρής κλίμακας παραγωγής.

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

Οι νέες τεχνολογίες κερδίζουν δημοτικότητα

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

Παραδείγματα περιλαμβάνουν OpenEdge, SQLite, BerkeleyDB, μία από τις παραλλαγές των Firebird, Sav Zigzag, Compact, LINTER, καθώς και μία από τις παραλλαγές της MySQL, οι εντολές της οποίας δεν διαφέρουν από αυτές που χρησιμοποιούνται στο DBMS πελάτη-διακομιστή. Ωστόσο ενσωματωμένοΤα συστήματα μπορούν εύκολα να χάσουν τη συνάφειά τους εάν η εργασία πάψει να είναι τοπικής φύσης.

Κύρια πλεονεκτήματα του MySQL DBMS

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

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

Η παρουσία ενός προγράμματος οδήγησης ODBC διευκολύνει τους προγραμματιστές να λύσουν πολλά προβλήματα. Τα πλεονεκτήματα περιλαμβάνουν επίσης τη δυνατότητα δημιουργίας εγγραφών σταθερού και μεταβλητού μήκους. Αλλά η κύρια λειτουργία, η οποία εκτιμάται ιδιαίτερα μεταξύ των προγραμματιστών, είναι η διεπαφή με τις γλώσσες C και PHP. Οι δυνατότητες που παρέχει η MySQL κατέστησαν δυνατή τη χρήση αυτό το DBMSγια έναν τεράστιο αριθμό παρόχων υπηρεσιών φιλοξενίας Διαδικτύου.

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

Τι πρέπει να μελετήσετε

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

Για να μάθετε βασικές εντολές, πρώτα απ 'όλα, πρέπει να έχετε σε ετοιμότητα Ελεύθεροςέκδοση του βοηθητικού προγράμματος κονσόλας MySQL. Εδώ ξεκινά η διαδικασία μάθησης. Μπορείτε να το κατεβάσετε από την επίσημη ιστοσελίδα της MySQL. Μπορεί να εγκατασταθεί εύκολα σε οποιοδήποτε λειτουργικό σύστημα, σχηματίζοντας διακομιστή και πελάτη σε έναν υπολογιστή, κάτι που είναι πολύ βολικό.

Στη συνέχεια, πρέπει να αναζητήσετε ένα σεμινάριο που περιέχει βασικές πληροφορίες σχετικά με το περιβάλλον MySQL. για βασική μελέτη κατά κανόνα περιέχουν και. Υπάρχουν πολλές πληροφορίες για αυτό το θέμα. Ωστόσο, η επιλογή πρέπει να ληφθεί σοβαρά υπόψη. Οι πληροφορίες πρέπει να παρουσιάζονται με συνέπεια και σαφή δομή.

Σε περίπτωση που έχετε ΒΑΣΙΚΕΣ ΓΝΩΣΕΙΣ Στα Αγγλικά, μπορείτε να χρησιμοποιήσετε την υποστήριξη που είναι ενσωματωμένη στην κονσόλα. Για αυτό υπάρχει ειδική ομάδα βοήθεια, το οποίο σας βοηθά να κατανοήσετε πώς να χρησιμοποιήσετε το βοηθητικό πρόγραμμα MySQL.

Βασικές εντολές κονσόλας

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

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

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

και προβολή

Τώρα πρέπει να προχωρήσετε στο επόμενο βήμα. Για να το κάνετε αυτό, πρέπει να επιλέξετε μια υπάρχουσα βάση δεδομένων ή να δημιουργήσετε μια νέα βάση δεδομένων. Για να επιλέξετε μια υπάρχουσα βάση δεδομένων, πρέπει να χρησιμοποιήσετε την εντολή use. Και εισαγάγετε το όνομα της βάσης δεδομένων διαχωρισμένο με ένα κενό. Αρχικά, υπάρχει μόνο ένα στο βοηθητικό πρόγραμμα - με το όνομα δοκιμή. Επομένως, το αίτημα θα μοιάζει με αυτό: χρήση δοκιμή.

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

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

Εντολές ελέγχου πίνακα

Πριν προχωρήσουμε περαιτέρω, είναι σημαντικό να επαναλάβουμε ότι η συμμόρφωση με τα πρότυπα γλώσσας SQL παρέχει άφθονες ευκαιρίεςπρογραμματιστές, ανεξάρτητα από το DBMS και τα λειτουργικά συστήματα που χρησιμοποιούνται. Τα ερωτήματα που αναπτύσσονται σε οποιοδήποτε περιβάλλον που υποστηρίζει το πρότυπο SQL θα εκτελούνται με επιτυχία (εάν υπάρχει βάση δεδομένων και πίνακες) στο περιβάλλον MySQL. Οι εντολές της κονσόλας των Windows δεν διαφέρουν από αυτές που χρησιμοποιούνται σε άλλα λειτουργικά συστήματα.

Υπάρχει μια σειρά από συγκεκριμένες εντολές για την εργασία με πίνακες, οι οποίες, αν μεταφραστούν από τα αγγλικά, μιλούν από μόνες τους. Σχετικά με την ομάδα δημιουργώαναφέρθηκε παραπάνω. Μπορεί επίσης να χρησιμοποιηθεί για την προσθήκη πινάκων σε μια βάση δεδομένων που δημιουργήθηκε προηγουμένως. Για να διαγράψετε αντικείμενα βάσης δεδομένων, ιδιαίτερα πίνακες, χρησιμοποιήστε την εντολή πτώση, στο οποίο προστίθεται το όνομα του αντικειμένου που καταστρέφεται. Παράδειγμα: πτώση όνομα_ του_ τα δικα σου_ τραπέζι.

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

Επιλέξτε εντολή

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

Πολλοί άνθρωποι δεν το σκέφτονται ποτέ, αλλά κατά την περιήγηση σε πόρους του Διαδικτύου, οι εντολές της MySQL χρησιμοποιούνται συνεχώς από τη σύνταξη SQL για την εμφάνιση των περιεχομένων των καταλόγων του ηλεκτρονικού καταστήματος ή των ειδήσεων στα κοινωνικά δίκτυα. Αντί για το σύμβολο «*» μετά την πρόταση επιλέγω, κατά κανόνα, παρέχεται μια λίστα με τα κύρια πεδία ενός πίνακα ή πολλών πινάκων, τα δεδομένα από τα οποία πρέπει να υποβληθούν σε επεξεργασία. Σε περίπτωση δειγματοληψίας από πολλούς πίνακες, χρησιμοποιείται ειδικός σύνδεσμος Συμμετοχή, το οποίο χρησιμεύει για τη σύνδεσή τους χρησιμοποιώντας υπάρχουσες εξωτερικές συνδέσεις. Ωστόσο, αυτή η συνθήκη μπορεί να αλλάξει καθορίζοντας ανεξάρτητα ποια πεδία θα χρησιμοποιηθούν για τη σύνδεση.

Ορισμός ορίων δειγματοληψίας

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

Δημοφιλές σύστημα διαχείρισης βάσεων δεδομένων MySQLχρησιμοποιείται ευρέως για διάφορες ανάγκες, κυρίως ως de facto πρότυπο στον τομέα της φιλοξενίας Διαδικτύου. Δεν είναι λιγότερο διαδεδομένο το πακέτο για τη διαχείριση αυτού του DBMS - phpMyAdmin. Χωρίς αμφιβολία, αυτό είναι ένα καλό, βολικό προϊόν, αλλά πολύ συχνά συμβαίνει ότι οι δεξιότητες εργασίας με αυτό το προϊόν αντικαθιστούν πλήρως τις δεξιότητες εργασίας με το ίδιο το DBMS. Επομένως σε αυτό το υλικόΑποφασίσαμε να παρουσιάσουμε στους αναγνώστες μας πώς να εκτελούν βασικές εργασίες διαχείρισης MySQL από τη γραμμή εντολών.

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

Αλλά υπάρχει μια μεγάλη διαφορά: ένας ειδικός που ξέρει πώς να εργάζεται με τη γραμμή εντολών χρησιμοποιώντας τον πίνακα δεν αντικαθιστά την ικανότητα εργασίας με το προϊόν, αλλά διευκολύνει μόνο τον εαυτό του να εκτελεί καθημερινές εργασίες. Και ένας αρχάριος, που έχει συνηθίσει να εκτελεί όλες τις ενέργειες στον πίνακα, αν είναι απρόσιτος, πέφτει σε έναν ήσυχο πανικό, γιατί τώρα πρέπει να εισάγει μερικά «ξόρκια» σε αυτή την ακατανόητη μαύρη κονσόλα...

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

Διαχείριση βάσεων δεδομένων και χρηστών στο MySQL

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

Mysql -u root -p

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

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

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

Αρχικά, ας δούμε τη λίστα των βάσεων δεδομένων:

Εμφάνιση βάσεων δεδομένων.

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

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

Επιλέξτε χρήστη, host από το mysql.user.

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

Η πρώτη στήλη υποδεικνύει τον χρήστη, η δεύτερη - τον κεντρικό υπολογιστή στον οποίο επιτρέπεται να συνδεθεί αυτός ο χρήστης, % - δηλώνει οποιαδήποτε τιμή. Σημειώστε ότι εάν Ιβάνοφέχει στις ρυθμίσεις localhost, στη συνέχεια όταν συνδεθεί με mysqlαπό τη διεύθυνση 127.0.0.1 δεν θα μπορεί να αποκτήσει πρόσβαση, αυτό πρέπει να λαμβάνεται υπόψη όταν προσδιορίζετε δεδομένα σύνδεσης με τον διακομιστή DBMS στις εφαρμογές σας.

Μπορείτε να προβάλετε κατόχους βάσης δεδομένων χρησιμοποιώντας το ακόλουθο ερώτημα:

Επιλέξτε host,db,user από το mysql.db.

Δεν απαιτούνται ειδικά σχόλια εδώ. Για παράδειγμα, Ιβάνοφέχει δικαιώματα σε βάσεις δεδομένων με το πρόθεμα ivanov_όταν συνδέεται μέσω localhost, και andrey σε βάσεις με πρόθεμα andrey_σε οποιοδήποτε κεντρικό υπολογιστή. Μπορείτε να δείτε τα δικαιώματα χρήστη με την εντολή:

Εμφάνιση επιχορηγήσεων για "ivanov"@"localhost"

Αναδιπλώνουμε το όνομα χρήστη και τον κεντρικό υπολογιστή σε μονά εισαγωγικά.

Η πρώτη γραμμή αναφέρει ότι ο καθορισμένος χρήστης δεν έχει δικαιώματα ( ΧΡΗΣΗ) σε οποιονδήποτε πίνακα οποιασδήποτε βάσης δεδομένων ( *.* ), η δεύτερη γραμμή μιλά για όλα τα κύρια δικαιώματα για όλους τους πίνακες όλων των βάσεων δεδομένων με το πρόθεμα ivanov_.

Μια λεπτομερής ανάλυση του συστήματος δικαιωμάτων MySQL υπερβαίνει κατά πολύ το πεδίο αυτού του άρθρου, ας πούμε απλώς ΟΛΑ ΤΑ ΠΡΟΝΟΜΙΑδίνει στον χρήστη όλα τα δικαιώματα στις βάσεις δεδομένων του, αλλά δεν του επιτρέπει να διαχειρίζεται τα δικαιώματα πρόσβασης για άλλους χρήστες. Για να γίνει αυτό, χρησιμοποιείται ένα σύνολο δικαιωμάτων ΟΛΑ ΤΑ ΠΡΟΝΟΜΙΑΜΕ ΕΠΙΛΟΓΗ ΕΠΙΧΟΡΗΓΗΣΗΣ, το οποίο έχει από προεπιλογή ρίζα. Για έναν απλό χρήστη, αυτό το σύνολο δικαιωμάτων είναι περιττό.

Ας προσπαθήσουμε να δημιουργήσουμε έναν νέο χρήστη:

Δημιουργία χρήστη "petrov"@"localhost" που προσδιορίζεται με "κωδικό πρόσβασης".

Η σύνταξη της εντολής είναι απλή, καθορίζουμε το όνομα χρήστη και τον κεντρικό υπολογιστή, καθώς και δεδομένα αναγνώρισης με τη μορφή κωδικού πρόσβασης. Όλες οι περασμένες τιμές είναι τυλιγμένες σε μονά εισαγωγικά. Έχοντας δημιουργήσει έναν χρήστη, πρέπει να του εκχωρήσετε δικαιώματα, αυτό γίνεται με την εντολή ΧΟΡΗΓΗΣΗ. Πρώτον, σαφώς θα του στερήσουμε τα προνόμια στις βάσεις δεδομένων άλλων ατόμων:

Παραχωρήστε χρήση στο *.* στο "petrov"@"localhost";

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

Παραχωρήστε όλα τα προνόμια στο `petrov\_%`.* στο "petrov"@"localhost";

Λάβετε υπόψη ότι το σχέδιο πρέπει να είναι τυλιγμένο με χαρακτήρες gravis (` ), τα οποία βρίσκονται στο κλειδί με το ρωσικό γράμμα E.

Έκδοση δικαιωμάτων σε ξεχωριστή βάση δεδομένωνμπορείτε να το κάνετε αυτό:

Παραχωρήστε όλα τα προνόμια στο andrey_drupal8.* στο "petrov"@"localhost";

Για να επιλέξετε δικαιώματα, χρησιμοποιήστε μόνο την εντολή REVOKE, η οποία έχει παρόμοια σύνταξη προς την (σε ποιον), αντικατέστησε με από (ΠΟΥ). Για παράδειγμα:

Ανάκληση όλων των προνομίων στο andrey_drupal8.* από το "petrov"@"localhost";

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

Flush προνόμια?

Μπορεί επίσης να χρειαστεί να αλλάξετε τον κωδικό πρόσβασης χρήστη:

Ορισμός κωδικού πρόσβασης για "petrov"@"localhost" = κωδικός πρόσβασης ("νέος κωδικός");

Μετονομάστε το και η μετονομασία δεν σημαίνει απαραίτητα αλλαγή του ονόματος χρήστη, μπορείτε να αλλάξετε τόσο το όνομα όσο και τον κεντρικό υπολογιστή, σε οποιονδήποτε συνδυασμό:

Μετονομάστε το χρήστη "petrov"@"localhost" σε "petr"@"127.0.0.1";

Και τέλος, διαγράψτε τον λογαριασμό:

Απόθεση χρήστη "petr"@"127.0.0.1";

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

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

Αυτό θα δημιουργήσει μια βάση δεδομένων με την προεπιλεγμένη κωδικοσελίδα και κωδικοποίηση σύγκρισης. Εάν ο διακομιστής DBMS δεν έχει ρυθμιστεί ξεχωριστά, τότε αυτή η κωδικοποίηση πιθανότατα θα είναι latin1_swedish_ci, το οποίο σε ορισμένες περιπτώσεις μπορεί να προκαλέσει προβλήματα, αν όχι τώρα, στο μέλλον, επομένως είναι καλός εμπειρικός κανόνας να υποδεικνύεται ρητά η κωδικοποίηση κατά τη δημιουργία της βάσης δεδομένων. Για το UTF-8 θα ήταν έτσι:

Δημιουργία βάσης δεδομένων petrov_newdb προεπιλεγμένο σύνολο χαρακτήρων utf8 collate utf8_general_ci;

Για Windows-1251:

Δημιουργία βάσης δεδομένων petrov_newdb προεπιλεγμένου συνόλου χαρακτήρων cp1251 collate cp1251_general_ci;

Για να αφαιρέσετε τη βάση δεδομένων χρησιμοποιήστε:

Απόθεση βάσης δεδομένων petrov_newdb;

Έλεγχος, βελτιστοποίηση, διόρθωση σφαλμάτων σε βάσεις δεδομένων MySQL

Καθώς η MySQL λειτουργεί ενεργά, οι βάσεις δεδομένων ενδέχεται να κατακερματιστούν και να περιέχουν σφάλματα στα δεδομένα πίνακα. Δεν μιλάμε τώρα για σοβαρές αποτυχίες, τέτοιες καταστάσεις θα πρέπει να εξετάζονται μεμονωμένα, αλλά για τα απλούστερα σφάλματα που μπορούν να εξαλειφθούν με επιτυχία χρησιμοποιώντας το ίδιο το DBMS. Για έλεγχο, επιδιόρθωση και βελτιστοποίηση, είναι βολικό να χρησιμοποιήσετε το βοηθητικό πρόγραμμα mysqlcheck.

Για να ελέγξετε τη βάση δεδομένων κάντε πού andrey_drupal8- όνομα βάσης δεδομένων:

Mysqlcheck -u root -p --check andrey_drupal8

Όλες οι βάσεις δεδομένων μπορούν να ελεγχθούν ταυτόχρονα με την εντολή:

Mysqlcheck -u root -p --check --all-databases

Και επειδή ολόκληρη η έξοδος πιθανότατα δεν θα χωράει στην οθόνη, είναι λογικό να την ανακατευθύνετε στην εντολή πιο λιγο:

Mysqlcheck -u root -p --check --all-databases | πιο λιγο

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

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

Mysqlcheck -u root -p --auto-repair andrey_drupal8

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

Mysqlcheck -u root -p --optimize --bases data andrey_drupal8 petrov_newdb

και επίσης όλα ταυτόχρονα:

Mysqlcheck -u root -p --optimize --all-databases

Μεταφόρτωση και φόρτωση χωματερών βάσεων δεδομένων MySQL

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

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

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

Mysqldump -u root -p andrey_drupal8 > ~/drupal8.sql

Για να ξεφορτώσετε πολλές βάσεις δεδομένων ταυτόχρονα, χρησιμοποιήστε το κλειδί --Βάσεις δεδομένωνή --όλες οι βάσεις δεδομένωνγια να δημιουργήσετε μια ένδειξη όλων των βάσεων δεδομένων ταυτόχρονα. Η έξοδος της εντολής πρέπει να σταλεί σε ένα αρχείο και να υποδεικνύει τη θέση του, στην περίπτωσή μας αυτό είναι το αρχείο drupal8.sqlστον οικιακό σας κατάλογο. Μπορείτε επίσης να διοχετεύσετε την έξοδο στον αρχειοθέτη και να λάβετε το αρχείο αμέσως:

Mysqldump -u root -p andrey_drupal8 | gzip > ~/drupal8.sql.gz

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

Για να επαναφέρετε τη βάση δεδομένων, πρέπει να στείλετε το dump στην είσοδο του βοηθητικού προγράμματος mysql για μεμονωμένα dumps, θα πρέπει πάντα να προσδιορίζετε τη βάση δεδομένων προορισμού, για παράδειγμα:

Mysql -u root -p andrey_drupal8< ~/drupal8.sql

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

Για χωματερές που περιέχουν περισσότερες από μία βάσεις δεδομένων, απλώς καθορίστε:

Mysql -u root -p< ~/all.sql

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

Όπως μπορείτε να δείτε, η δημιουργία και η επαναφορά dumps χρησιμοποιώντας τη γραμμή εντολών πραγματοποιείται κυριολεκτικά σε μία γραμμή και είναι πολύ πιο εύκολη και γρήγορη από τη χρήση phpMyAdmin ή παρόμοιων εργαλείων.

Ανάκτηση ενός ξεχασμένου κωδικού πρόσβασης root MySQL

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

Διακοπή υπηρεσίας mysql

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

Mysqld_safe --παράβλεψη-επιχορήγηση-πίνακες &

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

Mysql -u root

και μπαίνουμε στο περιβάλλον mysql με δικαιώματα ρίζαςχωρίς να εισάγετε κωδικό πρόσβασης.

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

Ενημέρωση mysql.user set password = password ("newpassword") όπου user="root";

Σπουδαίος!Σε νέες εκδόσεις της MySQL, αντί για στήλη Κωδικός πρόσβασηςτραπέζια χρήστηςχρησιμοποιείται στήλη authentication_string, οπότε αντί για Ορίστε κωδικόπρέπει να αναφέρεται ορίστε authentication_string.

Αυτό το αίτημα θα ορίσει έναν νέο κωδικό πρόσβασης Νέος Κωδικόςγια όλες τις σειρές μιας στήλης χρήστηςπου παρατίθενται ρίζα.

Ας ενημερώσουμε την προσωρινή μνήμη προνομίων:

Flush προνόμια?

Ας βγούμε από τη λειτουργία:

Ας σταματήσουμε την υπηρεσία και ας την ξεκινήσουμε σε κανονική λειτουργία:

Διακοπή υπηρεσίας mysql
έναρξη υπηρεσίας mysql

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

  • Ετικέτες:

Παρακαλώ ενεργοποιήστε την JavaScript για να δείτε το

Καλημέρα συνάδελφοι :)

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

Ωστε να αυτό το θέμαήταν ενδιαφέρον, πρέπει να είστε τουλάχιστον αρχάριος διαχειριστής συστήματος που δεν χρησιμοποιεί κατ 'αρχήν το phpMyAdmin και άλλες διεπαφές.

Εκτέλεση της κονσόλας σε διαφορετικό λειτουργικό σύστημα

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

Η δράση είναι απλή, γνωστή σε πολλούς, για την οποία αρκεί η γνώση των «hot keys».

Εκκίνηση της κονσόλας στα Windows:

  • Win+R για άνοιγμα της γραμμής εντολών των Windows με δικαιώματα διαχειριστή.
  • Εισαγάγετε την εντολή cmd
  • Κάντε κλικ Εισαγωστο πληκτρολόγιο

Εκκινήστε την κονσόλα Διανομές Linux(τερματικό): στο Ubuntu, με το οποίο δούλεψα, ο συνδυασμός πλήκτρων συστήματος είναι αρκετός Ctrl+Alt+T. Σχετικά με άλλα λειτουργικά συστήματα Βασισμένο σε LinuxΔεν μπορώ να πω τίποτα.

Εκκίνηση της κονσόλας σε MacOS: Δεν το έχω κάνει μόνος μου, γιατί... Δεν έχω πάρει ακόμα Mac και είναι απίθανο να πάρω ένα γιατί δεν το χρειάζομαι, αλλά από όσο μπόρεσα να μάθω, δεν υπάρχουν "hot keys" για κλήση τερματικού σε αυτό το λειτουργικό σύστημα. Αν λοιπόν είστε χρήστης προϊόντων της Apple, τότε ξεκινήστε την κονσόλα μέσω της διεπαφής του λειτουργικού συστήματος, ευτυχώς υπάρχουν πολλά εγχειρίδια στο Διαδίκτυο.

Είναι λίγο ντροπιαστικό ακόμη και να δημοσιεύουμε τέτοιες πληροφορίες σε περίπτωση αυτό το άρθροτυχαία θα συναντήσει κάποιος επαγγελματίας διαχειριστής συστήματος με μεγάλη εμπειρία, γιατί... θα σκεφτεί: «Ο συγγραφέας θεωρεί ότι οι αναγνώστες του είναι προγραμματιστές, αλλά ταυτόχρονα διδάσκει πώς να λανσάρεις μια κονσόλα... Κάποιο ψυχοψύχο :-)».

Ναι, πολύ λογικό :) Αλλά απλώς λαμβάνω υπόψη καταστάσεις που, μαζί με επαγγελματίες προγραμματιστέςΟι αρχάριοι μπορούν επίσης να έρθουν εδώ. Γι' αυτό προσπαθώ να κάνω τις πληροφορίες πλήρεις και προσβάσιμες σε όλες τις κατηγορίες χρηστών, όπως ήδη ανέφερα.

Βασικές εντολές κονσόλας MySQL

Επομένως, πρώτα απ 'όλα, πρέπει να έχουμε πρόσβαση στη γραμμή εντολών MySQL στην κονσόλα. Για να το κάνετε αυτό, ανοίξτε την κονσόλα διακομιστή και, εάν έχετε εγκαταστήσει τη MySQL καθολικά ως υπηρεσία, τότε για να "ελέγξουμε τη σύνδεση" γράφουμε τα εξής:

Mysql -V

Εντολή κονσόλας mysqlμας επιτρέπει να εκκινήσουμε το ομώνυμο βοηθητικό πρόγραμμα, το οποίο είναι μια γραμμή εντολών MySQL.

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

Ναι, δεν είμαι "τρελός κωδικοποιητής", επειδή χρησιμοποιώ τα Windows :) Αλλά δεν είναι αυτό το θέμα. Στα συστήματα Unix η διαδικασία θα είναι η ίδια.

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

Στην κονσόλα, μεταβείτε στον κατάλογο όπου βρίσκεται το εκτελέσιμο αρχείο MySQL (στα Windows, τουλάχιστον είναι mysql.exe) με την ακόλουθη εντολή:

Cd C:\OpenServer\modules\database\MySQL-5.7-x64\bin

Φυσικά, η πορεία σας προς τη διανομή μπορεί να είναι διαφορετική. Για παράδειγμα, αποφάσισα να εκτελέσω μία από τις εκδόσεις της MySQL που περιλαμβάνονται στον OpenServer.

Και ξεκινάμε τη MySQL, ελέγχοντας την έκδοσή της στην πορεία:

Mysql.exe -V

Ως αποτέλεσμα, ένα μήνυμα παρόμοιο με την πρώτη περίπτωση θα έπρεπε να έχει εμφανιστεί στην κονσόλα mysql Έκδοση 14.14 Διανομή 5.7.16, για Win64 (x86_64).

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

Σύνδεση στον διακομιστή MySQL στην κονσόλα

Ο διακομιστής MySQL ενδέχεται να μην βρίσκεται απαραίτητα στον ίδιο υπολογιστή στον οποίο προσπαθείτε να αποκτήσετε πρόσβαση στην κονσόλα. Επομένως, για να καταστεί δυνατή η σύνδεση σε έναν απομακρυσμένο διακομιστή MySQL μέσω της κονσόλας, το βοηθητικό πρόγραμμα mysql έχει πολλές παραμέτρους με τις οποίες μπορείτε να καθορίσετε τις απαραίτητες ρυθμίσεις.

Για να εκκινήσουμε τη γραμμή εντολών MySQL στην κονσόλα, πρέπει απλώς να γράψουμε τα εξής στην κονσόλα διακομιστή:

Ωστόσο, σε αυτήν την περίπτωση θα λάβετε το ακόλουθο σφάλμα: ΣΦΑΛΜΑ 1045 (28000): Δεν επιτρέπεται η πρόσβαση για τον χρήστη «ODBC»@»localhost» (με χρήση κωδικού πρόσβασης: ΟΧΙ). Έτσι φαίνεται το μήνυμα σφάλματος στα Windows μου. Εάν χρησιμοποιείτε Linux, τότε αντί για ODBC θα υπάρχει το όνομα του χρήστη του συστήματός σας με το οποίο εκτελείτε ενέργειες στο σύστημα.

Όλα αυτά είναι επειδή από προεπιλογή, κατά τη σύνδεση σε διακομιστή MySQL, η κονσόλα χρησιμοποιεί τον χρήστη ODBC στα Windows χωρίς κωδικό πρόσβασης και τον χρήστη συστήματος στο Linux με τον ίδιο κωδικό πρόσβασης. Ο προεπιλεγμένος κεντρικός υπολογιστής είναι ο localhost, δηλ. Αυτός ο χρήστης μπορεί να συνδεθεί μόνο από το τοπικό μηχάνημα.

Επομένως, έχετε δύο επιλογές: είτε να χρησιμοποιήσετε έναν άλλο χρήστη για να συνδεθείτε στη γραμμή εντολών MySQL ή να δημιουργήσετε έναν χρήστη MySQL με τον απαιτούμενο λογαριασμό. Αλλά για τη δεύτερη μέθοδο δεν μπορούμε να κάνουμε χωρίς την πρώτη :) Επομένως, πρώτα συνδεόμαστε στον διακομιστή MySQL υπό έναν τυπικό χρήστη ρίζα, το οποίο δημιουργείται όταν Εγκατάσταση MySQLσε έναν υπολογιστή και για τον οποίο η πρόσβαση από τον localhost επιτρέπεται από προεπιλογή:

Mysql -u root -p

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

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

Mysql -u user_name -p user_password -h MySQL_server_host_or_IP

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

Mysql --user=user_name --password=user_password --host=host_or_IP_of_MySQL_server

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

Mysql -u user_name -h MySQL_server_host_or_IP -σελ

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

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

  1. --port ή -P - για να καθορίσετε τη θύρα για σύνδεση στον διακομιστή MySQL.
  2. —πρωτόκολλο — το πρωτόκολλο μέσω του οποίου θα γίνει η σύνδεση (πιθανές επιλογές: TCP για Windows και Linux, SOCKET για Linux, PIPE και MEMORY για Windows).
  3. --socket ή -S - αυτή η παράμετρος είναι χρήσιμη εάν θέλετε να συνδεθείτε μέσω υποδοχών, επομένως, η τιμή της παραμέτρου θα είναι socket.
  4. --pipe ή -W - η παράμετρος είναι απαραίτητη εάν θέλετε να χρησιμοποιήσετε το όνομα "pipelines" ή "pipes" για συνδέσεις.
  5. --shared-memory-base-name - αυτή η παράμετρος θα είναι χρήσιμη για συνδέσεις MEMORY μέσω κοινή μνήμηστα Windows?

Είναι σαφές ότι η λίστα όλων των παραμέτρων για τη σύνδεση με τον διακομιστή MySQL δεν περιορίζεται σε αυτό. Στην πραγματικότητα υπάρχουν πολλά περισσότερα από αυτά.

Εάν για κάποιο λόγο η τυπική επιλογή που υποδεικνύει τον κεντρικό υπολογιστή, τον χρήστη και τον κωδικό πρόσβασης δεν σας ταιριάζει, τότε θα είναι χρήσιμο για εσάς να μάθετε την πλήρη λίστα των παραμέτρων σύνδεσης τις ακόλουθες πληροφορίες— https://dev.mysql.com/doc/refman/5.7/en/connecting.html

Πώς να δημιουργήσετε μια βάση δεδομένων στην κονσόλα MySQL

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

CREATE DATABASE database_name;

Η ίδια ενέργεια μπορεί να γίνει χρησιμοποιώντας ένα ειδικό βοηθητικό πρόγραμμα MySQL mysqladmin. Εκτελείται μεμονωμένα από τη γραμμή εντολών MySQL, π.χ. Για να το χρησιμοποιήσετε, θα χρειαστεί να βγείτε από αυτό ή να ανοίξετε μια νέα κονσόλα διακομιστή.

Και μετά καλέστε την ακόλουθη εντολή:

Mysqladmin δημιουργία database_name.

Παρεμπιπτόντως, χρησιμοποιώντας το βοηθητικό πρόγραμμα mysqladmin μπορείτε όχι μόνο να δημιουργήσετε και να διαγράψετε βάσεις δεδομένων χωρίς να συνδεθείτε στην κονσόλα MySQL, αλλά και να χειριστείτε τη διαμόρφωση διακομιστή, τις διεργασίες MySQL, να διαχειριστείτε επαναλήψεις, διακομιστές ping και να κάνετε πολλά άλλα ενδιαφέροντα πράγματα.

Πώς να δημιουργήσετε έναν χρήστη MySQL στη γραμμή εντολών

Όχι συχνά, αλλά μερικές φορές χρειάζεται να δημιουργήσετε έναν νέο χρήστη MySQL. Επιπλέον, σε λειτουργία κονσόλας.

Στη γραμμή εντολών MySQL αυτό γίνεται ως εξής:

ΔΗΜΙΟΥΡΓΙΑ ΧΡΗΣΤΗ "user_name"@"host_or_machine_IP" ΠΟΥ ΑΝΑΓΝΩΡΙΖΕΤΑΙ ΑΠΟ "user_password";

Ο χρήστης έχει δημιουργηθεί. Παράμετρος host_ή_IP_machineσημαίνει ότι κατά τη δημιουργία ενός χρήστη πρέπει να καθορίσετε την IP από την οποία μπορεί να συνδεθεί στον διακομιστή ή το όνομα του κεντρικού υπολογιστή (κατάλληλο Ονομα τομέαμηχανή εργασίας στο δίκτυο).

Παρεμπιπτόντως, όταν καθορίζετε τον κεντρικό υπολογιστή για σύνδεση στον διακομιστή MySQL, μπορείτε να χρησιμοποιήσετε το σύμβολο ποσοστού - % , το οποίο σημαίνει ότι χρήστη που δημιουργείταιμπορεί να συνδεθεί στον διακομιστή MySQL από οποιαδήποτε διεύθυνση IP ή κεντρικό υπολογιστή.

Θα πρέπει να ληφθεί υπόψη ότι σε αυτήν την περίπτωση το localhost δεν περιλαμβάνεται στη λίστα των διευθύνσεων που προσδιορίζονται με χρήση %, επειδή Το localhost υποδηλώνει μια σύνδεση μέσω μιας υποδοχής UNIX αντί του τυπικού TCP/IP. Εκείνοι. Εάν ο δημιουργημένος χρήστης MySQL θα συνδεθεί στον διακομιστή όχι χρησιμοποιώντας υποδοχές, αλλά χρησιμοποιώντας διαφορετικό πρωτόκολλο που καθορίζεται κατά τη σύνδεση στον διακομιστή MySQL στην κονσόλα, τότε θα χρειαστεί να δημιουργήσει δύο λογαριασμούς χρήστη:

ΔΗΜΙΟΥΡΓΙΑ ΧΡΗΣΤΗ "όνομα χρήστη"@"%" ΠΟΥ ΑΝΑΓΝΩΡΙΖΕΤΑΙ ΜΕ "κωδικό πρόσβασης"; ΔΗΜΙΟΥΡΓΙΑ ΧΡΗΣΤΗ "όνομα χρήστη"@"localhost" ΠΟΥ ΑΝΑΓΝΩΡΙΖΕΤΑΙ ΜΕ "κωδικό πρόσβασης".

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

ΠΑΡΑΧΩΡΗΣΤΕ ΟΛΑ ΤΑ ΠΡΟΝΟΜΙΑ ΣΤΟ database_name.* ΣΤΟ "user_name"@"host_or_machine_IP";

Επιλογή ΟΛΑ, όπως καταλαβαίνετε, απλώς υποδεικνύει ότι ο χρήστης επιτρέπεται να κάνει οποιαδήποτε ενέργεια με μια συγκεκριμένη βάση δεδομένων. Πλήρης λίστα δικαιωμάτων που μπορούν να παραχωρηθούν στους χρήστες χρησιμοποιώντας την εντολή ΧΟΡΗΓΗΣΗ, μπορείτε να βρείτε εδώ (αν και η περιγραφή των παραμέτρων είναι στα αγγλικά) - https://dev.mysql.com/doc/refman/5.7/en/grant.html#grant-privileges

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

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

ΧΟΡΗΓΗΣΤΕ ΟΛΟΥΣ ON *.* ΣΤΟ "user_name"@"host_or_machine_IP";

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

FLUSH ΠΡΟΝΟΜΙΑ?

Και αν θέλετε να αλλάξετε τα δικαιώματα χρήστη, χρησιμοποιήστε πρώτα την ακόλουθη εντολή για να επαναφέρετε όλα τα δικαιώματα:

ΑΝΑΚΛΗΣΗ ΟΛΑ ΤΑ ΠΡΟΝΟΜΙΑ ΣΤΟ *.* ΑΠΟ "user_name"@"host_or_machine_IP";

Και στη συνέχεια εγκαταστήστε αυτά που χρειάζεται να χρησιμοποιήσει ΧΟΡΗΓΗΣΗ, όπως περιγράφηκε προηγουμένως.

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

SET PASSWORD FOR "user_name"@"host_or_machine_IP" = PASSWORD("new_password"); FLUSH ΠΡΟΝΟΜΙΑ?

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

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

ΕΝΗΜΕΡΩΣΗ ΣΕΤ mysql.user Password=PASSWORD("password") WHERE User="username";

Αλλά αυτή η επιλογή δεν λειτούργησε για μένα στο MySQL 5.7, δίνοντας ένα σφάλμα ΣΦΑΛΜΑ 1054 (42S22): Άγνωστη στήλη "Κωδικός πρόσβασης" στη "λίστα πεδίων". Ο λόγος αποδείχθηκε ότι ήταν η απουσία του πεδίου Κωδικός πρόσβασης στον πίνακα mysql.user.

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

Αυτό ολοκληρώνει τη δημιουργία ενός νέου χρήστη MySQL και τον έλεγχο των ενεργειών με τα δικαιώματα και τους κωδικούς πρόσβασης του. Ας προχωρήσουμε.

Επιλογή βάσης δεδομένων κατά την εργασία με MySQL μέσω της γραμμής εντολών

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

Για να το κάνετε αυτό, χρησιμοποιήστε την ακόλουθη εντολή στην κονσόλα MySQL:

USE database_name;

Εάν όλα πήγαν καλά, θα εμφανιστεί ένα μήνυμα στην κονσόλα Η βάση δεδομένων άλλαξε, το οποίο θα σηματοδοτήσει ότι έχουμε συνδεθεί στη βάση δεδομένων MySQL μέσω της κονσόλας. Παρεμπιπτόντως, όταν συνδέεστε σε έναν διακομιστή MySQL, μπορείτε αρχικά να καθορίσετε τη βάση δεδομένων με την οποία θα χρειαστεί να εργαστείτε. Για να το κάνετε αυτό, πρέπει να εισαγάγετε την ακόλουθη εντολή στην κονσόλα διακομιστή:

Mysql --user=user_name --password=user_password --host=MySQL_server_host_or_IP --database=database_name

Ή το ίδιο πράγμα, ζητώντας μόνο τον κωδικό πρόσβασης χρήστη MySQL:

Mysql -u user_name -h host_or_IP_MySQL_server_database_name -p

Αυτό είναι όλο. Νομίζω ότι δεν θα έχετε καμία δυσκολία να συνδεθείτε στη βάση δεδομένων MySQL μέσω της κονσόλας τώρα :)

Εργασία με πίνακες MySQL μέσω της κονσόλας MySQL

Έτσι, δημιουργήσαμε μια βάση δεδομένων MySQL μέσω της κονσόλας. Τώρα θα ήταν ωραίο να μάθουμε πώς να δουλεύουμε με αυτό στην περίπτωση που η γραμμή εντολών MySQL θα είναι το μόνο μέσο πρόσβασης στα δεδομένα που είναι αποθηκευμένα στον διακομιστή (όπως συνέβη για μένα, για το οποίο μίλησα στην αρχή του άρθρο).

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

Οι λειτουργίες CRUD, εάν κάποιος δεν γνωρίζει, είναι λειτουργίες για τη δημιουργία, την ανάγνωση, την ενημέρωση και τη διαγραφή δεδομένων από τα αγγλικά. «Δημιουργία, Ανάγνωση, Ενημέρωση, Διαγραφή» (μπορεί να χρειαστείτε αυτό κατά τη διάρκεια συνεντεύξεων).

Να σας υπενθυμίσω ότι για να εκτελέσετε ενέργειες με πίνακες πρέπει πρώτα να συνδεθείτε στη βάση δεδομένων MySQL χρησιμοποιώντας την εντολή ΧΡΗΣΗ.

Έτσι, το πρώτο πράγμα στην ατζέντα μας είναι η εντολή για τη δημιουργία ενός πίνακα MySQL στη βάση δεδομένων μέσω της γραμμής εντολών, η οποία μοιάζει με αυτό:

CREATE TABLE table_name (όνομα_πεδίου_1_τύπος_πεδίου_1, όνομα_πεδίου_2_τύπος_πεδίου_2(μέγεθος_πεδίου_2), INDEX(όνομα_πεδίου_1), ...);

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

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

ΔΗΜΙΟΥΡΓΙΑ ΠΙΝΑΚΑ new_table_name ΟΠΩΣ και το old_table_name. INSERT new_table_name ΕΠΙΛΟΓΗ * ΑΠΟ το old_table_name;

Αυτές οι εντολές σάς επιτρέπουν να αντιγράψετε τη δομή του πίνακα και τα δεδομένα του μαζί με ευρετήρια και εναύσματα πινάκων. Εάν χρειάζεστε απλώς δεδομένα και δομή (ονόματα πεδίων και τύποι δεδομένων τους), τότε μπορείτε να τα βγάλετε πέρα ​​καλώντας μία εντολή:

ΔΗΜΙΟΥΡΓΙΑ ΠΙΝΑΚΑ new_table_name ΩΣ ΕΠΙΛΟΓΗ * ΑΠΟ το old_table_name;

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

ΕΜΦΑΝΙΣΗ ΠΛΗΡΗΣ ΣΤΗΛΩΝ ΑΠΟ το όνομα_του πίνακα. ΠΕΡΙΓΡΑΦΕΙ το όνομα_πίνακα. EXPLAIN table_name; ΕΜΦΑΝΙΣΗ ΔΗΜΙΟΥΡΓΙΑ ΠΙΝΑΚΑΣ name_name;

Η πρώτη εμφανίζει πληροφορίες σχετικά με τα πεδία του πίνακα της βάσης δεδομένων σε μορφή πίνακα στην κονσόλα MySQL, υποδεικνύοντας το όνομα πεδίου, τον τύπο δεδομένων, την παρουσία κλειδιών, την προεπιλεγμένη τιμή κ.λπ. Όταν χρησιμοποιείτε μια λέξη-κλειδί ΓΕΜΑΤΟΣμπορείτε να λάβετε εκτεταμένες πληροφορίες, συμπεριλαμβανομένων προνομίων για κάθε πεδίο για τον τρέχοντα χρήστη, σχολίων για καθένα από αυτά και την τιμή κωδικοποίησης.

Η δεύτερη και η τρίτη εντολή είναι απλώς συντομευμένες μορφές της πρώτης εντολής χωρίς τις εκτεταμένες πληροφορίες. Γιατί χρειαζόταν να τα παραγάγω - δεν μπορώ καν να φανταστώ... Είναι για να υπάρχει κάτι να ρωτήσω κατά τη διάρκεια των συνεντεύξεων για δουλειά; 🙂

Η τέταρτη εντολή, εκτός από το όνομα, τους τύπους πεδίων και τις προεπιλεγμένες τιμές τους, σας επιτρέπει να λάβετε τις τιμές των κλειδιών πίνακα, των μηχανών πίνακα (InnoDB, MyISAM), κωδικοποίησης κ.λπ.

Η λειτουργία ενημέρωσης στην περίπτωση των πινάκων αντιπροσωπεύει μια αλλαγή στη δομή τους, δηλ. διάφορες ενέργειες με πεδία πίνακα MySQL:

ΑΛΛΑΓΗ ΠΙΝΑΚΑ_όνομα_πίνακα ΑΠΟΨΗ ΣΤΗΛΗ_όνομα_πεδίου. ΑΛΛΑΓΗ ΠΙΝΑΚΑΣ όνομα_πίνακα ΠΡΟΣΘΗΚΗ ΣΤΗΛΗΣ όνομα_πεδίου VARCHAR(20); ΑΛΛΑΓΗ ΠΙΝΑΚΑΣ όνομα_πίνακα ΑΛΛΑΓΗ old_field_name new_field_name VARCHAR(50); ΑΛΛΑΓΗ ΠΙΝΑΚΑΣ name_name TODIFY field_name VARCHAR(3);

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

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

ΑΛΛΑΓΗ ΠΙΝΑΚΑ_όνομα πίνακα ΠΡΟΣΘΗΚΗ ΜΟΝΑΔΙΚΟΥ ΕΥΡΕΤΗΡΙΟΥ index_name (όνομα_πεδίου_1, ...); ALTER TABLE table_name μετονομασία INDEX old index_name ΣΕ νέο index_name. ΑΛΛΑΓΗ ΠΙΝΑΚΑ όνομα_πίνακα DROP INDEX index_name;

Οι ακόλουθες εντολές σας επιτρέπουν να προσθέσετε, να μετονομάσετε και να αφαιρέσετε ευρετήρια από πίνακες MySQL μέσω της γραμμής εντολών. Παρεμπιπτόντως, υπάρχει επίσης ένας τρόπος για να προσθέσετε και να αφαιρέσετε ευρετήρια: Εναλλακτική επιλογηχρησιμοποιώντας αυτόνομες εντολές αντί να το κάνετε μέσω ALTER TABLE. Επομένως, αν θέλετε, μπορείτε να τα χρησιμοποιήσετε:

ΔΗΜΙΟΥΡΓΙΑ ΜΟΝΑΔΙΚΟΥ ΕΥΡΕΤΗΡΙΟΥ index_name (όνομα_πεδίου_1, ...) ON table_name; DROP INDEX index_name ON table_name;

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

Λοιπόν, επιτέλους, φτάσαμε στην τελευταία λειτουργία από το μπλοκ CRUD - διαγραφή. Η κατάργηση των πινάκων MySQL από μια βάση δεδομένων είναι πολύ απλή. Απλώς εκτελέστε την ακόλουθη εντολή στην κονσόλα MySQL:

DOP TABLE table_name;

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

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

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

Στην πραγματικότητα, απαιτούνται ξένα κλειδιά MySQL για το σκοπό αυτό.

Επομένως, για να διαγράψετε δεδομένα στα οποία παρεμβάλλονται ξένα κλειδιά, πρέπει να εκτελέσετε τα ακόλουθα βήματα στην κονσόλα MySQL:

SET FOREIGN_KEY_CHECKS=0; #required_mysql_command SET FOREIGN_KEY_CHECKS=1;

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

ΑΛΛΑΓΗ ΠΙΝΑΚΑΣ όνομα_πίνακα ΑΠΟΔΟΣΗ ΞΕΝΟ ΚΛΕΙΔΙ ξένο_όνομα_κλειδιού.

Για να μάθετε το όνομα του ξένου κλειδιού MySQL ενός πίνακα, χρησιμοποιήστε την ήδη γνωστή εντολή κονσόλας MySQL ΔΕΙΞΤΕ ΔΗΜΙΟΥΡΓΙΑ ΠΙΝΑΚΑ.

Εργασία με δεδομένα πίνακα MySQL μέσω της γραμμής εντολών

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

Οι λειτουργίες CRUD για εργασία με δεδομένα πίνακα MySQL θα μοιάζουν με αυτό:

INSERT INTO table_name (field1, field2, ...) VALUES (τιμή πεδίου_1, τιμή πεδίου_2, ...); SELECT field1, field2, ... FROM table_name; ΕΝΗΜΕΡΩΣΗ ονομάτων πίνακα SET field1 = field_1 value, field2 = field_2 value; DELETE FROM table_name WHERE πεδίο1 = τιμή πεδίου_1.

Οι παραπάνω εντολές αντιστοιχούν στις λειτουργίες δημιουργίας, ανάγνωσης, ενημέρωσης και διαγραφής δεδομένων από πίνακες βάσεων δεδομένων MySQL. Όταν χρησιμοποιείτε το SELECT και το UPDATE, είναι επίσης δυνατό να χρησιμοποιήσετε μια ρήτρα WHERE που πληροί τις προϋποθέσεις, η οποία μπορεί να χρησιμοποιηθεί για τον καθορισμό της επιλογής δεδομένων με τον ίδιο τρόπο που περιγράφεται όταν χρησιμοποιείτε το DELETE.

Επίσης, κατά την ανάκτηση δεδομένων από μια βάση δεδομένων με χρησιμοποιώντας ΕΠΙΛΟΓΗμπορείτε να χρησιμοποιήσετε την παρακάτω επιλογή για να λάβετε τις τιμές όλων των πεδίων του πίνακα:

SELECT * FROM table_name;

Φυσικά, αυτές οι λειτουργίες μπορούν να χρησιμοποιούν άλλους χειριστές εκτός από το WHERE. Υπάρχουν ιδιαίτερα πολλά από αυτά κατά την ανάκτηση δεδομένων χρησιμοποιώντας το SELECT: εδώ υπάρχει UNION για το συνδυασμό των αποτελεσμάτων πολλών ερωτημάτων και Διάφοροι τύποιΣΥΜΜΕΤΟΧΗ. Η λίστα με τα πάντα είναι πολύ μεγάλη και θα είναι κουραστικό τόσο για εμένα όσο και για εσάς να το διαβάσετε.

Επομένως, ας συμφωνήσουμε: αν θέλετε να μάθετε περισσότερα για κάτι, απλώς γράψτε για αυτό στα σχόλια και θα προσπαθήσω να σας απαντήσω. Ή άλλα μέλη της κοινότητάς μας με γνώση θα το κάνουν. ΕΝΤΑΞΕΙ; 😉

Επομένως, δεν θα σταθούμε σε αυτό το μπλοκ προς το παρόν.

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

TRUNCATE table_name;

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

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

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

Δηλαδή, εάν πριν διαγράψετε δεδομένα πίνακα χρησιμοποιώντας ΚΟΛΟΒΟΣη μέγιστη τιμή μετρητή ήταν 1200, τότε η πρώτη εγγραφή μετά από αυτήν τη διαδικασία θα έχει μια τιμή αναγνωριστικού 1201. Κατ 'αρχήν, είναι εντάξει. Εάν έχετε ορίσει ένα μέγεθος που επαρκεί για αυτού του τομέα, τότε δεν θα κινδυνεύετε από υπερχείλιση τιμών σύντομα.

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

Για να αποφύγετε αυτό, χρησιμοποιήστε αυτήν την επιλογή αντί για την παραπάνω εντολή:

ΚΟΜΠΗ ΠΙΝΑΚΑ someTable ΕΠΑΝΕΚΚΙΝΗΣΗ ΤΑΥΤΟΤΗΤΑΣ.

Αυτή η επιλογή κλήσης εντολών ΚΟΛΟΒΟΣθα σας επιτρέψει να επαναφέρετε την τιμή του μετρητή πεδίου από ΑΥΤΟΜΑΤΗ ΑΥΞΗΣΗ. Επομένως, η τιμή πεδίου της πρώτης εγγραφής που προστέθηκε μετά από αυτήν τη διαγραφή θα είναι 1 αντί για 1201, όπως στο παραπάνω παράδειγμα.

Πώς να διαγράψετε μια βάση δεδομένων MySQL μέσω γραμμής εντολών

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

DELETE DATABASE database_name;

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

Mysqladmin drop database_name;

Όταν καλείτε την εντολή, εμφανίζεται το ακόλουθο μήνυμα στην κονσόλα διακομιστή:

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

Θέλετε πραγματικά να απορρίψετε τη βάση δεδομένων «όνομα_βάσης δεδομένων».

Εν ολίγοις, αυτή είναι μια προειδοποίηση ότι η διαγραφή μιας βάσης δεδομένων MySQL είναι μια πολύ κακή ιδέα. Ζητείται επίσης επιβεβαίωση της ενέργειας. Αν συμφωνείς, γράψε yκαι πατήστε Εισαγωστο πληκτρολόγιο, μετά από το οποίο θα εμφανιστεί το ακόλουθο μήνυμα στην οθόνη (αν όλα πήγαν καλά, φυσικά):

Η βάση δεδομένων "database_name" απορρίφθηκε

Αυτό είναι :)

Πώς να διαγράψετε έναν χρήστη MySQL στην κονσόλα

Τώρα την ίδια μοίρα θα έχει και ο χρήστης MySQL που δημιουργήσαμε για να σας δείξουμε πώς γίνεται. Αλλά πρώτα, θα ήταν καλή ιδέα να ελέγξετε εάν ο απαιτούμενος χρήστης υπάρχει πράγματι πριν τον διαγράψετε.

Από την MySQL 5.7, υπάρχει μία εντολή και για τις δύο αυτές ενέργειες:

ΑΠΟΣΤΟΛΗ ΧΡΗΣΤΗ ΑΝ ΥΠΑΡΧΕΙ όνομα χρήστη.

Σε περισσότερα προηγούμενες εκδόσειςΗ MySQL απαιτούσε δύο ξεχωριστές εντολές:

ΧΟΡΗΓΗΣΗ ΧΡΗΣΗΣ ΣΤΟ *.* ΣΤΟ "user_name"@"host_or_IP_address"; ΑΠΟΣΤΟΛΗ ΧΡΗΣΤΗ "user_name"@"host_or_IP_address";

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

ΕΠΙΛΟΓΗ Χρήστη ΑΠΟ mysql.user;

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

SELECT User, Host, Grant_priv FROM mysql.user;

Επίσης στον πίνακα mysql.user υπάρχουν πολλά άλλα πεδία που αποθηκεύουν άλλους τύπους προνομίων και άλλες πληροφορίες, μια πλήρη λίστα των οποίων μπορείτε να βρείτε εδώ - https://mariadb.com/kb/en/library/mysqluser- τραπέζι/

Μην μπερδεύεστε ότι πρόκειται για τεκμηρίωση για το MariaDB DBMS. Τεχνικά αυτό είναι το ίδιο με το MySQL, επειδή... Το MariaDB είναι απλώς το κλαδί ή το πιρούνι του από το αγγλικό «fork» - branch, fork.

Γιατί έγινε - και πάλι, δεν έχω ιδέα 🙂 Ίσως να δηλώνω περήφανα σε όλους ότι "έχω το δικό μου DBMS";.. Αλλά, για να είμαι ειλικρινής, δεν γνωρίζω πολύ τα ακριβή κίνητρα και τις διαφορές μεταξύ MySQL και MariaDB. Επομένως, εάν γνωρίζετε κάτι σχετικά με αυτό, θα ήταν ενδιαφέρον να το διαβάσετε στα σχόλια.

Έξοδος από την κονσόλα MySQL

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

Το μόνο που μένει είναι να βγούμε από αυτό...

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

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

Και αυτό είναι όλο 🙂 Έτσι, την επόμενη φορά δεν χρειάζεται να δημιουργείτε πολλές κονσόλες και να τις ανοίγετε ξανά κάθε φορά που χρειάζεται να βγείτε από τη MySQL στην κονσόλα και να αποκτήσετε ξανά πρόσβαση σε αυτήν για να διαχειριστείτε τον διακομιστή.

Μόνο αυτό ήθελα να σας πω σήμερα. Ελπίζω ότι το cheat φύλλο μου για την εργασία με τη γραμμή εντολών MySQL μέσω της κονσόλας θα είναι χρήσιμο όχι μόνο σε εμένα, αλλά και σε εσάς.

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

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

Γράψτε στα σχόλια ποιες εντολές χρησιμοποιείτε πιο συχνά. Ή ίσως γνωρίζετε κάποια άλλα κόλπα. Σε κάθε περίπτωση, μοιραστείτε τη γνώμη σας με άλλους και συνεχίστε τη συζήτηση στα σχόλια άλλων χρηστών.

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

Αυτό είναι όλο! Καλή τύχη και τα λέμε ξανά :)

ΥΣΤΕΡΟΓΡΑΦΟ.: εάν χρειάζεστε έναν ιστότοπο ή θέλετε να κάνετε αλλαγές σε έναν υπάρχοντα, αλλά δεν υπάρχει χρόνος ή επιθυμία για κάτι τέτοιο, μπορώ να προσφέρω τις υπηρεσίες μου.

Περισσότερα από 5 χρόνια εμπειρίαανάπτυξη επαγγελματικής ιστοσελίδας. Δουλεύω με PHP, OpenCart, WordPress, Laravel, Yii, MySQL, PostgreSQL, JavaScript, Αντιδρώ, Γωνιώδηςκαι άλλες τεχνολογίες ανάπτυξης Ιστού.