Μη αυτόματη εγκατάσταση της MySQL στα Windows. Βασικά στοιχεία διαχείρισης MySQL Χρήση της γραμμής εντολών Διακοπή του διακομιστή mysql από τη γραμμή εντολών




Για Win 32, επιλέξτε τη διανομή: Windows (x86, 32-bit), Αρχείο zip.

Για Win 64: Windows (x86, 64-bit), Αρχείο zip.

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

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

3. Ας προχωρήσουμε στη δημιουργία ενός αρχείου διαμόρφωσης (my.ini). Λαμβάνουμε ως βάση ένα από τα τυπικά αρχεία:

  • my-small.ini - κατάλληλο για όσους χρησιμοποιούν MySQL κατά καιρούς και δεν θέλουν ο διακομιστής να καταλαμβάνει πολλούς πόρους.
  • Το my-medium.ini είναι επίσης μια ελαφριά διαμόρφωση, αλλά είναι κατάλληλη για όσους χρησιμοποιούν MySQL σε τακτική βάση (μια καλή επιλογή για έναν οικιακό διακομιστή web).
  • Το my-large.ini και το my-huge.ini είναι για συστήματα που χρησιμοποιούνται ως αποκλειστικός διακομιστής MySQL. Ωστόσο, το my-large.ini μπορεί να χρησιμοποιηθεί για έναν οικιακό διακομιστή εάν χρειάζεστε επιπλέον απόδοση MySQL (512 MB RAM δεν είναι τόσο πολλές αυτές τις μέρες).
  • my-innodb-heavy-4G - για αποκλειστικούς διακομιστές με 4 GB μνήμης RAM και χρησιμοποιώντας μόνο πίνακες InnoDB.

Σε αυτό το παράδειγμα, επέλεξα το my-medium.ini ως βάση. Μετονομάστε το σε my.ini και τοποθετήστε το στη ρίζα του φακέλου εγκατάστασης ( C:\Program Files\MySQL\MySQL Server 5.5).

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

basedir=C:/Program Files/MySQL/MySQL Server 5.5 datadir=C:/Program Files/MySQL/MySQL Server 5.5/data

Σημειώστε ότι τα μονοπάτια χρησιμοποιούν κάθετες (/) και όχι κάθετες (\).

Το basedir είναι η διαδρομή προς τον φάκελο εγκατάστασης.

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

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

# Ο διακομιστής MySQL basedir=C:/Program Files/MySQL/MySQL Server 5.5 datadir=C:/Program Files/MySQL/MySQL Server 5.5/θύρα δεδομένων = 3306 υποδοχή = /tmp/mysql.sock skip-external-locking 16M max_allowed_packet = 1M table_open_cache = 64 sort_buffer_size = 512K net_buffer_length = 8K read_buffer_size = 256K read_rnd_buffer_size = 512K InnoDB_sort_buffer_s

4. Το επόμενο βήμα είναι να προσθέσετε τη διαδρομή C:\Program Files\MySQL\MySQL Server 5.5\binστη μεταβλητή περιβάλλοντος PATH για να διευκολυνθεί η εκκίνηση της MySQL από τη γραμμή εντολών. Για να το κάνετε αυτό, ανοίξτε το System Properties -> Advanced System Settings -> στην καρτέλα Advanced στο κάτω μέρος, το κουμπί "Environment Variables...". Στο παράθυρο που ανοίγει, κάντε κύλιση στις μεταβλητές συστήματος μέχρι να βρούμε το Path. Επισημάνετε αυτή τη γραμμή και κάντε κλικ στο "Επεξεργασία...". Στο τέλος της γραμμής, προσθέστε τη διαδρομή σας, διατηρώντας τις υπάρχουσες παραμέτρους:

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

5. Πριν εκτελέσετε μια δοκιμαστική εκτέλεση, ανοίξτε την εισερχόμενη θύρα TCP 3306 στο τείχος προστασίας των Windows:


Εάν έχετε ένα προαιρετικό τείχος προστασίας εγκατεστημένο στο σύστημά σας, πρέπει επίσης να ανοίξετε τη θύρα TCP 3306 σε αυτό το τείχος προστασίας για εισερχόμενες συνδέσεις.

6. Τώρα κάνουμε μια δοκιμαστική λειτουργία. Σε μια γραμμή εντολών που εκτελείται ως διαχειριστής (αυτό απαιτείται εάν το UAC είναι ενεργοποιημένο σε Seven ή Vista), εκτελούμε:

mysqld -- κονσόλα

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

Έκδοση: Υποδοχή "5.5.9-log": Θύρα "": 3306 MySQL Community Server (GPL)

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

MySQL -u root

Εάν η σύνδεση ήταν επιτυχής, θα δείτε μια γραμμή εντολών: mysql>

Ας δούμε τι βάσεις έχουμε:

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

Το ερωτηματικό στο τέλος του ερωτήματος SQL είναι ΥΠΟΧΡΕΩΤΙΚΟ!

Απάντηση ομάδας:


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

7. Προχωρώντας στο επόμενο βήμα, πρέπει να ορίσετε τον κωδικό πρόσβασης διαχειριστή MySQL (χρήστης root). Από προεπιλογή, ο κωδικός πρόσβασης δεν έχει οριστεί και αυτό θα πρέπει να διορθωθεί. Στο ίδιο παράθυρο της MySQL, πληκτρολογήστε τις ακόλουθες εντολές:

Χρησιμοποιήστε mysql UPDATE χρήστη SET password = PASSWORD("your_password") WHERE user = "root";

Έλεγχος του αποτελέσματος:

ΕΠΙΛΟΓΗ χρήστη, οικοδεσπότης, κωδικός πρόσβασης ΑΠΟ χρήστη.

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

Πριν βγείτε, εκτελέστε την εντολή:

FLUSH ΠΡΟΝΟΜΙΑ?

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

MySQL -u root -p

Για να τερματίσετε τη λειτουργία MySQL:

mysqladmin -u root -p τερματισμός λειτουργίας

8. Το τελευταίο βήμα είναι να ξεκινήσετε τη MySQL ως υπηρεσία συστήματος των Windows.

Βεβαιωθείτε ότι δεν υπάρχουν ενεργές διεργασίες MySQL στο σύστημα.

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

"C:\Program Files\MySQL\MySQL Server 5.5\bin\mysqld" --εγκατάσταση

Η διαδρομή προς το mysqld πρέπει να καθοριστεί πλήρως (ακόμα κι αν είναι σε PATH)!

Για να ξεκινήσετε την υπηρεσία, ανοίξτε το "Computer Management" και ξεκινήστε μη αυτόματα την υπηρεσία MySQL:


Ή ευκολότερα μέσω της γραμμής εντολών:

καθαρή εκκίνηση mysql

Για να καταργήσετε μια υπηρεσία, πρώτα διακόψτε την:

net stop mysql

και εκτελέστε:

"C:\Program Files\MySQL\MySQL Server 5.5\bin\mysqld" --αφαίρεση

Οι φίλοι μου κάνουν συχνά ορισμένες ερωτήσεις σχετικά με τη διαχείριση και σκέφτηκα, γιατί να μην γράφω τέτοια άρθρα-σημειώσεις στον ιστότοπο αντί να εξηγώ το ίδιο πράγμα 100 φορές; Επιπλέον, αυτή είναι μια εξαιρετική ευκαιρία, στην περίπτωση αυτή, να χρησιμοποιήσετε μια τέτοια σημείωση μόνοι σας, επειδή γνωρίζετε ότι μερικές φορές δεν είναι δυνατό να κρατήσετε τα πάντα στο μυαλό σας και με τον έναν ή τον άλλον τρόπο μερικές φορές πρέπει να στραφείτε σε ένα βιβλίο αναφοράς, ας γίνει λοιπόν ένα από τα τμήματα αυτού του ιστότοπου ένα τέτοιο βιβλίο. Σήμερα θα μιλήσουμε για το πώς να δουλέψουμε με το MySQL DBMS από τη γραμμή εντολών, ναι, κάποιος θα πει - "Nakoy; Μετά από όλα, υπάρχει το phpMyAdmin, "απαντώ - γιατί να σπαταλάτε πολύτιμους πόρους διακομιστή εγκαθιστώντας κάθε είδους σκουπίδια όπως WebMin, phpMyAdmin κ.λπ., αν όλα μπορούν να γίνουν εύκολα με αξιόπιστα, δοκιμασμένα εργαλεία. Η εγκατάσταση από το τερματικό μέσω σήραγγας SSH είναι η επιλογή μας!

Λοιπόν, ας ξεκινήσουμε. Συνδεόμαστε στον διακομιστή μέσω SSH, για παράδειγμα, μέσω του γνωστού PuTTY (A Free Telnet / SSH Client). Τώρα ας πάμε απευθείας στην περιγραφή των εντολών.

Είσοδος στον διακομιστή MySQL με το πρόγραμμα mysql:

mysql -u root -h localhost -σελ

Η επιλογή -u καθορίζει τον χρήστη που θα συνδεθεί. Η επιλογή -h καθορίζει τον κεντρικό υπολογιστή. Αυτό είναι συνήθως localhost εάν ρυθμίζετε έναν μη απομακρυσμένο διακομιστή. Τέλος, το -p λέει στο πρόγραμμα-πελάτη mysql να εισάγει έναν κωδικό πρόσβασης για πρόσβαση στη βάση δεδομένων. Παρατηρήστε την προτροπή mysql>. Εδώ θα εισάγετε όλες τις εντολές σας. Τώρα, όντας στο περιβάλλον mysql ως χρήστης root, μπορούμε να ξεκινήσουμε τη ρύθμιση της βάσης δεδομένων.

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

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

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

Δοκιμή ΧΡΗΣΗΣ.

Προνόμια στη MySQL

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

Σημείωση: Η εντολή GRANT θεωρείται τρόπος δημιουργίας χρήστη. Ωστόσο, οι νεότερες εκδόσεις της MySQL περιέχουν επίσης τη συνάρτηση CREATE_USER, αν και το GRANT εξακολουθεί να προτιμάται.
Τώρα χρειαζόμαστε προνόμια που μπορούν να εκχωρηθούν. Χρησιμοποιώντας όλα τα παραπάνω, μπορείτε να ορίσετε τα ακόλουθα προνόμια:

Σημείωση: Εάν χρησιμοποιείτε MySQL για επικοινωνία με μια εφαρμογή Ιστού, τότε τα δικαιώματα CREATE, SELECT, INSERT που εξηγούνται εδώ, καθώς και τα δικαιώματα DELETE και UPDATE (που περιγράφονται στο εγχειρίδιο MySQL, ενότητα GRANT και REVOKE Σύνταξη) είναι τα μόνα που είναι πιθανό να απαιτηθούν. Πολλοί άνθρωποι κάνουν το λάθος να δίνουν όλα τα προνόμια όταν πραγματικά δεν το χρειάζονται. Επικοινωνήστε με τους προγραμματιστές εφαρμογών για να δείτε εάν τέτοια δικαιώματα θα δημιουργήσουν πραγματικά προβλήματα απόδοσης.

Δημιουργήστε έναν χρήστη διαχειριστή:

Έτσι δημιουργούνται οι χρήστες. τώρα ας τα δοκιμάσουμε. Πρώτα, βγείτε από το mysql πληκτρολογώντας quit στη γραμμή εντολών:

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

ΑΝΑΚΛΗΣΗ ΟΛΩΝ ON δοκιμή.* ΑΠΟ "διαχειριστής" @"localhost" ;

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

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

Διαγραφή λογαριασμών με εντολή ΔΙΑΓΡΑΦΩ.
Ο πίνακας χρηστών MySQL είναι μια λίστα χρηστών και πληροφορίες σχετικά με αυτούς. Βεβαιωθείτε ότι έχετε συνδεθεί ως root. Χρησιμοποιήστε την κύρια βάση δεδομένων MySQL.

Χρησιμοποιώντας την κύρια βάση δεδομένων mysql:

Ο πίνακας χρηστών είναι αυτός που χρειάζεστε. Έχει 30 διαφορετικά πεδία και είναι δυσανάγνωστο. Για ευκολία στην ανάγνωση, χρησιμοποιούμε την τρίτη μορφή της εντολής SELECT. Τα απαιτούμενα πεδία είναι Host (host) και User (user).
Εύρεση του χρήστη διαχειριστή στον πίνακα χρήστη:

Τώρα που έχουμε τις πληροφορίες, μπορούμε να απαλλαγούμε από τον χρήστη διαχειριστή. Αυτό γίνεται με την εντολή DELETE. εδώ είναι η σύνταξή του:

Ίσως έχετε παρατηρήσει ότι η μορφή DELETE είναι κάπως παρόμοια με τη μορφή SELECT. Καθορίστε το πεδίο Χρήστης και την τιμή διαχειριστή. Αυτό θα αφαιρέσει την καταχώριση από τον πίνακα χρηστών όπου ο χρήστης είναι διαχειριστής, διαγράφοντας τον λογαριασμό μας. Ας το κάνουμε:
Κατάργηση του διαχειριστή χρήστη:

Η εντολή FLUSH PRIVILEGES είναι απαραίτητη για την ενημέρωση των δικαιωμάτων.

Αυτά για σήμερα. Συμφωνώ, όλα είναι απλά! ;)

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

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

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

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

Αυτή τη στιγμή έχω τρία από αυτά:

  1. Για πρώτη φορά, συνάντησα εργασία στην κονσόλα MySQL όταν χρειάστηκε να εισαγάγω μια μεγάλη ένδειξη δεδομένων βάσης δεδομένων. Μέσω του phpMyAdmin, δεν φορτώθηκε πλήρως, γιατί. έπεσε κάπου στη μέση όσον αφορά το χρονικό όριο, παρά την αλλαγή των ρυθμίσεων για τον χρόνο εκτέλεσης της λειτουργίας και το μέγεθος των ληφθέντων αρχείων. Κατ 'αρχήν, ήταν δυνατή η επιλογή των επιθυμητών τιμών, αλλά μου φάνηκε ότι αυτή ήταν μια πολύ μεγάλη διαδικασία.
  2. Την επόμενη φορά που έπρεπε να δουλέψω με τη MySQL μέσω της γραμμής εντολών ήταν να απενεργοποιήσω τον έλεγχο ξένων κλειδιών όταν ήταν απαραίτητο να διαγράψω δεδομένα από έναν πίνακα που συσχετίστηκε με άλλους χρησιμοποιώντας κλειδιά. Στο phpMyAdmin, απλά δεν βρήκα πώς να το κάνω αυτό.
  3. Σε σοβαρές εταιρείες, μόνο η κονσόλα χρησιμοποιείται για εργασία με MySQL χωρίς κανένα phpMyAdmin. Δεν ξέρω γιατί συγκεκριμένα, αλλά γνώστες είπαν ότι είχε να κάνει με την ασφάλεια. Ως αποτέλεσμα, όλοι έπρεπε να δουλέψουν με τη γραμμή εντολών MySQL, συμπεριλαμβανομένου και εμένα 🙂

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

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

Δεδομένου ότι θα παρουσιάσω τη γραμμή εντολών 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 Server στην Κονσόλα

Ο διακομιστής 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 όνομα χρήστη -p κωδικός χρήστη -h MySQL_server_host_or_IP

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

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

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

Mysql -u όνομα χρήστη -h MySQL_server_host_or_IP -σελ

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

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

  1. --port ή -P - για να καθορίσετε τη θύρα σύνδεσης στον διακομιστή MySQL.
  2. --πρωτόκολλο — πρωτόκολλο που χρησιμοποιείται για τη σύνδεση (πιθανές επιλογές: TCP για Windows και Linux, SOCKET για Linux, PIPE και MEMORY για Windows).
  3. --socket ή -S - αυτή η παράμετρος είναι χρήσιμη εάν θέλετε να συνδεθείτε μέσω υποδοχών, επομένως, η τιμή της παραμέτρου θα είναι μια υποδοχή.
  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, αυτό γίνεται ως εξής:

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

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

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

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

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

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

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

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

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

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

ΧΟΡΗΓΗΣΤΕ ΟΛΟΥΣ ΣΕ *.* ΣΤΟ "όνομα χρήστη"@"host_or_machine_IP";

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

FLUSH ΠΡΟΝΟΜΙΑ?

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

ΑΝΑΚΛΗΣΗ ΟΛΑ ΤΑ ΠΡΟΝΟΜΙΑ ΣΤΟ *.* ΑΠΟ "όνομα χρήστη"@"host_or_machine_IP";

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

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

SET PASSWORD FOR "username"@"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 όνομα χρήστη -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, ...); ΑΛΛΑΓΗ ΠΙΝΑΚΑ όνομα_πίνακα μετονομασία INDEX old_index_name ΣΕ new_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, μπορείτε να χρησιμοποιήσετε την ακόλουθη επιλογή για να λάβετε τις τιμές όλων των πεδίων του πίνακα:

SELECT * FROM table_name;

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

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

Προς το παρόν, λοιπόν, δεν θα σταθούμε σε αυτό το μπλοκ.

Εάν πρέπει να αφαιρέσετε όλα τα δεδομένα από έναν πίνακα, μπορείτε να χρησιμοποιήσετε την ακόλουθη εντολή 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 απαιτούσαν δύο ξεχωριστές εντολές:

ΧΟΡΗΓΗΣΗ ΧΡΗΣΗΣ ΣΤΟ *.* ΣΤΟ "username"@"host_or_IP_address"; ΑΠΟΣΤΟΛΗ ΧΡΗΣΤΗ "όνομα χρήστη"@"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-table/

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

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

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

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

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

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

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

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

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

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

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

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

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

Αυτό είναι όλο! Καλή τύχη και τα λέμε σύντομα 🙂

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

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

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

mysql στην αρχή της γραμμής σημαίνει ότι η εντολή εκτελείται μετά την εισαγωγή MySQL.

Το σύμβολο # ή $ στην αρχή της γραμμής σημαίνει ότι η εντολή εκτελείται από τη γραμμή εντολών.

Για να ελέγξετε την κατάσταση του διακομιστή MySQLτρέξιμο:

Για FreeBSD:

# υπηρεσία mysql-server status

V CentOS/RHEL:

# υπηρεσία mysqld κατάσταση

MySQLαπό την κονσόλα εάν ο διακομιστής MySQLβρίσκεται στον ίδιο οικοδεσπότη:

Για να συνδεθείτε στον διακομιστή MySQLαπό την κονσόλα εάν ο διακομιστής MySQLπου βρίσκεται στον απομακρυσμένο κεντρικό υπολογιστή db1.example.com:

$ mysql -u όνομα χρήστη -p -h db1.example.com

Εργασία με βάσεις δεδομένων, πίνακες - προβολή, διαγραφή, επεξεργασία εγγραφών. Κονσόλα

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

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

Εμφάνιση λίστας με όλες τις βάσεις δεδομένων στο διακομιστή MySQL:

MySQL χρήση ;

Εμφάνιση όλων των πινάκων στη βάση δεδομένων:

mysql εμφάνιση πινάκων?

Προβολή μορφής πίνακα στη βάση δεδομένων:

mysql περιγράψτε ;

Διαγραφή βάσης:

mysql drop database ;

Διαγραφή πίνακα από τη βάση δεδομένων:

mysql drop table ;

Εμφάνιση όλων των περιεχομένων του πίνακα:

MySQL SELECT * FROM ;

Εμφανίστε τις στήλες και τα περιεχόμενα των στηλών στον επιλεγμένο πίνακα:

Η Mysql εμφανίζει στήλες από ;

Εμφάνιση σειρών σε έναν συγκεκριμένο πίνακα που περιέχει " οτιδήποτε ":

MySQL SELECT * FROM WHERE = "whatever";

Εμφάνιση όλων των εγγραφών σε έναν συγκεκριμένο πίνακα που περιέχει το " Bob " και τον αριθμό τηλεφώνου " 3444444:

Mysql SELECT * FROM WHERE name = " Bob " AND phone_number = " 3444444 ";

Εμφάνιση όλων των καταχωρήσεων ΔΕΝπου περιέχει το όνομα " Bob " και τον αριθμό τηλεφώνου " 3444444 ", ταξινομημένα με βάση το πεδίο phone_number:

Mysql SELECT * FROM WHERE name != " Bob " AND phone_number = " 3444444 " order by phone_number;

Εμφάνιση όλων των καταχωρήσεων που ξεκινούν με τα γράμματα "bob" και τον αριθμό τηλεφώνου "3444444" σε έναν συγκεκριμένο πίνακα:

Mysql SELECT * FROM WHERE όνομα όπως " Bob %" AND phone_number = " 3444444 ";

Εμφάνιση όλων των καταχωρήσεων που ξεκινούν με τα γράμματα "bob" και τον αριθμό τηλεφώνου "3444444", που περιορίζεται στις καταχωρήσεις 1 έως 5:

Mysql SELECT * FROM WHERE όνομα όπως " Bob %" AND phone_number = " 3444444 " όριο 1,5;

Χρήση τυπικών εκφράσεων ("REGEXP BINARY") για αναζήτηση καταχωρήσεων. Για παράδειγμα, για μια αναζήτηση χωρίς διάκριση πεζών-κεφαλαίων, βρείτε όλες τις εγγραφές που ξεκινούν με το γράμμα Α:

Mysql SELECT * FROM WHERE rec RLIKE "^a";

Εμφάνιση όλων των μοναδικών καταχωρήσεων:

MySQL SELECT DISTINCT FROM; mysql ΕΠΙΛΟΓΗ , ΑΠΟ ΠΑΡΑΓΓΕΛΙΑ ΚΑΤΑ DESC;

Εμφάνιση αριθμού σειρών στον πίνακα:

Mysql SELECT COUNT(*) FROM ;

Mysql SELECT SUM(*) FROM ;

Αφαίρεση στήλης:

mysql αλλαγή στήλης πτώσης πίνακα ;

Προσθήκη στήλης στη βάση δεδομένων:

mysql alter πίνακα προσθήκη στήλης varchar(20);

Αλλαγή ονόματος στήλης:

mysql αλλαγή πίνακα αλλαγή varchar(50);

Δημιουργήστε μια στήλη με ένα μοναδικό όνομα για να αποφύγετε διπλότυπα ονόματα:

mysql alter table add unique();

Αλλαγή μεγέθους στήλης:

mysql αλλαγή πίνακα τροποποίηση VARCHAR(3);

Αφαίρεση στήλης από πίνακα:

mysql alter πίνακα πτώσης index ;

Η Mysql LOAD DATA INFILE " /tmp/filename.csv " αντικαθιστά ΣΕ ΠΕΔΙΑ ΤΟΥ ΠΙΝΑΚΑ ΠΟΥ ΤΕΡΜΑΤΙΖΟΝΤΑΙ ΑΠΟ "," ΓΡΑΜΜΕΣ ΠΟΥ ΤΕΡΜΑΤΙΖΟΝΤΑΙ ΑΠΟ "n" (field1,field2,field3);

Χρήστες διακομιστή MySQL, κωδικοί πρόσβασης - προσθήκη, αλλαγή χρηστών και κωδικών πρόσβασης. Κονσόλα

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

# mysql -u root -p mysql χρήση mysql; mysql INSERT INTO user (Host,User,Password) VALUES("%"," username ", PASSWORD("password")); Προνόμια flush mysql.

Αλλαγή κωδικού πρόσβασης χρήστη από την κονσόλα στον απομακρυσμένο κεντρικό υπολογιστή db1.example.org:

# mysqladmin -u όνομα χρήστη -h db1.example.org -p κωδικός πρόσβασης " new-password "

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

# mysql -u root -p mysql SET PASSWORD FOR " user "@" hostname " = PASSWORD(" passwordhere "); Προνόμια flush mysql.

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

# /etc/init.d/mysql stop # mysqld_safe -skip-grant-tables & # mysql -u root mysql use mysql; mysql ενημέρωση συνόλου χρήστη κωδικός πρόσβασης=PASSWORD(" newrootpassword ") όπου User="root"; mysql; flush προνόμια? mysql κλείσιμο # /etc/init.d/mysql stop # /etc/init.d/mysql start

Ορίστε έναν κωδικό πρόσβασης root εάν υπάρχει κωδικός πρόσβασης root.

# mysqladmin -u κωδικός πρόσβασης ρίζας νέος κωδικός πρόσβασης

Ενημέρωση κωδικού πρόσβασης root:

# mysqladmin -u root -p παλιός κωδικός νέος κωδικός πρόσβασης

Ρύθμιση του δικαιώματος σύνδεσης στον διακομιστή από τον κεντρικό υπολογιστή localhost με τον κωδικό πρόσβασης "passwd" - σύνδεση subroot, μετάβαση στη βάση δεδομένων, ρύθμιση προνομίων, ενημέρωση δικαιωμάτων:

# mysql -u root -p mysql χρήση mysql; Η mysql παραχωρεί χρήση στο *.* στον bob @localhost που προσδιορίζεται από το " passwd "; Προνόμια flush mysql.

Ορισμός προνομίων για χρήση της βάσης δεδομένων από έναν χρήστη - σύνδεση ως root, μετάβαση στη βάση δεδομένων, ρύθμιση προνομίων, ενημέρωση δικαιωμάτων:

# mysql -u root -p mysql χρήση mysql; mysql INSERT INTO db (Host,Db,User,Select_priv,Insert_priv,Update_priv,Delete_priv,Create_priv,Drop_priv) ΤΙΜΕΣ ("%","όνομα βάσης δεδομένων","όνομα χρήστη","Y","Y","Y"," Υ", "Υ", "Ν"); Προνόμια flush mysql.

Η Mysql παραχωρεί όλα τα δικαιώματα στο όνομα βάσης δεδομένων .* στο όνομα χρήστη @localhost. Προνόμια flush mysql.

Ενημέρωση πληροφοριών στη βάση δεδομένων:

ΣΕΤ ΕΝΗΜΕΡΩΣΗΣ Mysql Select_priv = "Y",Insert_priv = "Y",Update_priv = "Y" όπου = χρήστης";

Διαγραφή σειράς σε πίνακα:

Mysql DELETE from where = "whatever";

Ενημέρωση προνομίων στη βάση δεδομένων:

Προνόμια flush mysql.

Αντίγραφα ασφαλείας - δημιουργία, επαναφορά της βάσης δεδομένων. Κονσόλα

Δημιουργήστε ένα αντίγραφο ασφαλείας (dump) όλων των βάσεων δεδομένων στο αρχείο alldatabases.sql:

# mysqldump -u root -p κωδικός πρόσβασης -opt ; /tmp/alldatabase.sql

Δημιουργήστε αντίγραφα ασφαλείας μιας βάσης δεδομένων στο αρχείο databasename.sql:

# mysql dump -u όνομα χρήστη -p κωδικός πρόσβασης -όνομα βάσης δεδομένων βάσεων δεδομένων ; /tmp/databasename.sql

Δημιουργήστε αντίγραφα ασφαλείας ενός πίνακα στο αρχείο databasename.tablename.sql:

# mysql dump -c -u όνομα χρήστη -p κωδικός πρόσβασης όνομα βάσης δεδομένων όνομα πίνακα ; /tmp/databasename.tablename.sql

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

# mysql -u όνομα χρήστη -p κωδικός πρόσβασης όνομα βάσης δεδομένων< /tmp/databasename.sql

Δημιουργία πινάκων βάσεων δεδομένων. Κονσόλα

Τα μικρά γράμματα υποδεικνύουν τα ονόματα των στηλών.
ΚΕΦΑΛΑΙΑ γράμματα - τύποι και χαρακτηριστικά στηλών.
σε (αγκύλες) - η τιμή του τύπου στήλης.

Δημιουργία πίνακα παραδείγματος 1:

mysql CREATE TABLE (όνομα VARCHAR(20), μεσαίο αρχικό VARCHAR(3), επώνυμο VARCHAR(35), επίθημα VARCHAR(3), officeid VARCHAR(10), userid VARCHAR(15), όνομα χρήστη VARCHAR(8), email VARCHAR(35 ) ), τηλέφωνο VARCHAR(25), ομάδες VARCHAR(15), σφραγίδα ημερομηνίας DATE, χρονική σήμανση TIME, pgpemail VARCHAR(255));

Δημιουργία πίνακα παραδείγματος 2:

Mysql δημιουργία πίνακα (personid INT(50) NOT NULL AUTO_INTCREMENT PRIMARY KEY, όνομα VARCHAR(35), μεσαίο όνομα VARCHAR(50), επώνυμο VARCHAR(50) προεπιλεγμένο "bato");

Το βοηθητικό πρόγραμμα γραμμής εντολών mysql είναι ένα απλό περιτύλιγμα SQL (με τις δυνατότητες της βιβλιοθήκης Readline του έργου GNU). Υποστηρίζει διαδραστικές και μη διαδραστικές λειτουργίες. Στη διαδραστική λειτουργία, τα αποτελέσματα των ερωτημάτων παρουσιάζονται σε μορφή ASCII. Όταν χρησιμοποιείται σε μη διαδραστική λειτουργία (για παράδειγμα, ως φίλτρο), το αποτέλεσμα παρουσιάζεται σε μορφή κειμένου με έναν χαρακτήρα στηλοθέτη ως διαχωριστικό (η μορφή εξόδου μπορεί να αλλάξει χρησιμοποιώντας τις επιλογές της γραμμής εντολών). Τα σενάρια μπορούν να εκτελεστούν όπως φαίνεται παρακάτω:

Shell > output.tab βάσης δεδομένων mysql

Εάν αντιμετωπίζετε προβλήματα λόγω έλλειψης μνήμης σε έναν συγκεκριμένο πελάτη, χρησιμοποιήστε την επιλογή --quick! Αυτό θα κάνει το mysql να χρησιμοποιήσει τη συνάρτηση mysql_use_result() αντί για τη συνάρτηση mysql_store_result() για να λάβει την προκύπτουσα ανάκτηση δεδομένων.

Η χρήση της mysql είναι πολύ εύκολη. Εκτελέστε τη βάση δεδομένων mysql ή τη βάση δεδομένων mysql --user=user_name --password=your_password π.χ. Πληκτρολογήστε την εντολή SQL απευθείας στη γραμμή εντολών, τελειώνοντάς την με έναν από τους παρακάτω χαρακτήρες: `;" , `\g" ή `\G" και, στη συνέχεια, πατήστε το πλήκτρο "Enter"".

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

Βοήθεια Εμφάνιση πληροφοριών βοήθειας σχετικά με τη χρήση του προγράμματος και έξοδος από αυτό. -A, --no-auto-rehash Απενεργοποιεί την αυτόματη επανεξέταση. Το rehash θα πρέπει να χρησιμοποιηθεί για να ληφθεί ο κατακερματισμός των πινάκων και των πεδίων. Αυτό κάνει το mysql να ξεκινά πιο γρήγορα. --prompt=... Ορίζει μια γραμμή εντολών στη δεδομένη μορφή. -b, --no-beep Απενεργοποιεί το ηχητικό σήμα σφάλματος. -B, -- παρτίδα Έξοδος παρτίδας με έναν χαρακτήρα καρτέλας ως διαχωριστικό, κάθε γραμμή σε μια νέα γραμμή. Το αρχείο ιστορικού δεν χρησιμοποιείται. --character-sets-dir=... Κατάλογος όπου βρίσκονται τα σύνολα χαρακτήρων. -C, --compress Χρήση συμπίεσης δεδομένων πρωτοκόλλου διακομιστή/πελάτη. -#, --debug[=...] Αρχείο καταγραφής εντοπισμού σφαλμάτων. Η προεπιλεγμένη τιμή είναι "d:t:o,/tmp/mysql.trace". -D, --database=... Το όνομα της βάσης δεδομένων που θα χρησιμοποιηθεί. Χρησιμοποιείται κυρίως στο αρχείο διαμόρφωσης "my.cnf". --default-character-set=... Ορίστε το προεπιλεγμένο σύνολο χαρακτήρων. -e, --execute=... --batch) -E, --vertical Print αποτελέσματα ερωτημάτων (συμβολοσειρές) κατακόρυφα.Μπορείτε να παράγετε έξοδο όπως αυτό χωρίς αυτήν την επιλογή τερματίζοντας εντολές με χαρακτήρες \G. -f, --force Συνεχίστε την επεξεργασία ακόμα και αν παρουσιαστεί σφάλμα SQL. -g, --no-named-commands Απενεργοποίηση εντολών με όνομα Χρησιμοποιήστε μόνο εντολές \* ή χρησιμοποιήστε εντολές με όνομα μόνο στην αρχή μιας γραμμής που τελειώνει σε `;" . Από την έκδοση 10.9 ο πελάτης ξεκινά με αυτήν την επιλογή, περιλαμβάνεται Προκαθορισμένο! Με την επιλογή -g, ωστόσο, οι μεγάλες εντολές εξακολουθούν να λειτουργούν από την πρώτη γραμμή. -G, --enable-named-commands Ενεργοποίηση εντολών με όνομα. Επιτρέπονται μεγάλες εντολές, καθώς και συντομευμένες εντολές όπως \*. -i, --ignore-space Παράβλεψη διαστήματος μετά από ονόματα συναρτήσεων. -h, --host=... Σύνδεση σε μια βάση δεδομένων στον καθορισμένο κεντρικό υπολογιστή. -H, --html Εκτύπωση εξόδου ως HTML. -L, --skip-line-numbers Παράλειψη αριθμών γραμμής για σφάλματα. Χρήσιμο για σύγκριση αρχείων που προκύπτουν που περιλαμβάνουν μηνύματα σφάλματος. --no-pager Απενεργοποιεί τον τηλεειδοποιητή και γράφει το αποτέλεσμα στο stdout (στο Unix). Δείτε επίσης την εντολή \h (διαδικτυακή βοήθεια). --no-tee Κλειδώνει το αρχείο εξόδου. Δείτε επίσης την εντολή \h (διαδικτυακή βοήθεια). -n, --unbuffered Εκκαθάριση του buffer μετά από κάθε αίτημα. -N, --skip-column-names Παράλειψη ονομάτων στηλών στα αποτελέσματα. -O, --set-variable var=option Ορίστε την τιμή μιας μεταβλητής. Η λίστα των χρησιμοποιούμενων μεταβλητών εμφανίζεται μέσω --help . -o, --one-database Ενημερώστε μόνο την προεπιλεγμένη βάση δεδομένων. Σας επιτρέπει να παραλείψετε άλλες ενημερώσεις βάσης δεδομένων στο αρχείο καταγραφής ενημερώσεων. --pager[=...] Ορίζει τον τύπο δεδομένων εξόδου. Από προεπιλογή, αυτή είναι η μεταβλητή περιβάλλοντος PAGER. Οι πιθανές τιμές του είναι λιγότερα, περισσότερα, cat [> όνομα αρχείου] κ.λπ. Δείτε επίσης την εντολή \h (διαδικτυακή βοήθεια). Αυτή η επιλογή δεν λειτουργεί σε λειτουργία δέσμης. Ο τηλεειδοποιητής λειτουργεί μόνο υπό Unix. -p, --password[=...] Κωδικός πρόσβασης που χρησιμοποιείται κατά τη σύνδεση στον διακομιστή βάσης δεδομένων. Εάν ο κωδικός πρόσβασης δεν έχει καθοριστεί στη γραμμή εντολών, τότε ζητείται από τον χρήστη. Όταν χρησιμοποιείτε τη σύντομη φόρμα -p, μην αφήνετε κενό μεταξύ της παραμέτρου και της τιμής του κωδικού πρόσβασης. -P --port=... Αριθμός θύρας TCP/IP για χρήση για σύνδεση. -q, --γρήγορη Να μην αποθηκεύεται προσωρινά το αποτέλεσμα. Έξοδος γραμμή προς γραμμή όπως προέρχεται από τον διακομιστή. Αυτό μπορεί να επιβραδύνει τον διακομιστή εάν η έξοδος είναι σε παύση. Το αρχείο ιστορικού δεν χρησιμοποιείται. -r, --raw Εμφάνιση τιμών στηλών χωρίς μετασχηματισμό. Χρησιμοποιείται με --batch. -s, --silent Αθόρυβη λειτουργία. Εμφάνιση μόνο μηνυμάτων σφάλματος. -S --socket=... Αρχείο υποδοχής που χρησιμοποιείται για σύνδεση. -t --table Εξαγωγή του αποτελέσματος σε μορφή πίνακα. Ορίστηκε από προεπιλογή για λειτουργία χωρίς παρτίδες. -T, --debug-info Εκτυπώστε ορισμένες πληροφορίες εντοπισμού σφαλμάτων κατά την έξοδο του προγράμματος. --tee=... Επισυνάψτε κάτι στο αρχείο εξόδου. Δείτε επίσης την εντολή \h (διαδικτυακή βοήθεια). Αυτή η επιλογή δεν λειτουργεί σε λειτουργία δέσμης. -u, --user=# Όνομα χρήστη MySQL εάν αυτός ο χρήστης δεν είναι ενεργός αυτήν τη στιγμή. -U, --safe-updates[=#], --i-am-a-dummy[=#] Επιτρέπονται μόνο οι λειτουργίες UPDATE και DELETE με χρήση πλήκτρων. Δείτε παρακάτω για περισσότερες πληροφορίες σχετικά με αυτήν τη ρύθμιση. Μπορείτε να επαναφέρετε αυτήν την επιλογή ορίζοντας το όρισμα --safe-updates=0 στο αρχείο διαμόρφωσης `my.cnf'. V , --έκδοση Εμφάνιση πληροφοριών έκδοσης και έξοδος από το πρόγραμμα -w, --wait Εάν η σύνδεση με τον διακομιστή έχει πέσει, περιμένετε και προσπαθήστε να την επαναφέρετε αντί να την ακυρώσετε.

Μπορείτε επίσης να ορίσετε τις ακόλουθες μεταβλητές μέσω των επιλογών γραμμής εντολών -O ή --set-variable:

Εάν πληκτρολογήσετε help στη γραμμή εντολών, το πρόγραμμα mysql θα εμφανίσει τις εντολές που υποστηρίζει:

Mysql> help MySQL Commands help (\h) Εμφανίζει το δεδομένο κείμενο. ? (\ η) Συνώνυμο της βοήθειας. διαγραφή (\c) Διαγραφή εντολής. σύνδεση (\r) Επανασυνδεθείτε στον διακομιστή. Πρόσθετα ορίσματα είναι db και host. edit (\e) Επεξεργαστείτε την τρέχουσα εντολή με $EDITOR. ego (\G) Στείλτε την τρέχουσα εντολή MySQL στον διακομιστή και εμφανίστε το αποτέλεσμα κάθετα. έξοδος (\q) Έξοδος από το πρόγραμμα. Το ίδιο με το να παραιτηθεί. go (\g) Στείλτε την τρέχουσα εντολή MySQL στον διακομιστή. nopager (\n) Αποκλεισμός του τηλεειδοποιητή, εκτύπωση σε stdout. σημείωση (\t) Μην προσθέτετε καταχωρήσεις στο αρχείο εξόδου του αρχείου. τηλεειδοποιητής (\P) Ρύθμιση PAGER . Εμφάνιση αποτελεσμάτων ερωτήματος μέσω PAGER. print (\p) Εκτυπώστε την τρέχουσα εντολή. prompt (\R) Αλλάξτε τη μορφή προτροπής για τις εντολές mysql. έξοδος (\q) Κλείστε το πρόγραμμα. rehash (\#) Επαναφορά του πίνακα κατακερματισμού. πηγή (\.) Εκτελέστε το αρχείο δέσμης ενεργειών SQL. Δώστε ένα όνομα αρχείου ως όρισμα. κατάσταση (\s) Λήψη πληροφοριών κατάστασης διακομιστή. tee (\T) Ορίστε την επιλογή outfile. Προσθέστε κάτι στο δεδομένο αρχείο εξόδου. χρήση (\u) Χρησιμοποιήστε άλλη βάση δεδομένων. Καθορίστε το όνομα της βάσης δεδομένων ως όρισμα.

Η εντολή τηλεειδοποίησης λειτουργεί μόνο στο Unix.

Το αποτέλεσμα αυτού είναι το εξής:

  • Δεν επιτρέπεται η εκτέλεση εντολών ΕΝΗΜΕΡΩΣΗ ή ΔΙΑΓΡΑΦΗ, εκτός εάν ορίζονται βασικοί περιορισμοί στον όρο WHERE. Ωστόσο, μπορείτε να αναγκάσετε να εκτελεστούν εντολές UPDATE / DELETE χρησιμοποιώντας την πρόταση LIMIT: UPDATE table_name SET not_key_column=# WHERE not_key_column=# LIMIT 1;
  • Όλα τα υπερμεγέθη αποτελέσματα περιορίζονται στις γραμμές #select_limit#.
  • Οι SELECT που ενδέχεται να απαιτούν περισσότερους από #max_join_size# συνδυασμούς σειρών για να εκτελεστούν θα ματαιωθούν.

Μερικές χρήσιμες συμβουλές για τη χρήση του προγράμματος-πελάτη mysql:

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

Mysql> SELECT * FROM mails WHERE LENGTH(txt) sbj: UTF-8 txt: >>>>> "Thimble" == Ο Thimble Smith γράφει: Thimble> Γεια. Νομίζω ότι αυτή είναι μια καλή ιδέα. Είναι κάποιος εξοικειωμένος με το UTF-8 Thimble> ή το Unicode; Διαφορετικά, θα το βάλω στη λίστα TODO μου και θα δω τι συμβαίνει το Thimble>. Ναι, κάντε το. Με εκτίμηση, αρχείο Monty: inbox-jani-1 hash: 190402944 1 σειρά στο σετ (0,09 δευτ.)

  • Μπορείτε να χρησιμοποιήσετε τις επιλογές εντολής tee για να συνδεθείτε. Μπορεί να εκτελεστεί με την επιλογή --tee=... σε mysql ή διαδραστικά από τη γραμμή εντολών με την εντολή tee. Όλα τα δεδομένα που εμφανίζονται στην οθόνη θα προστεθούν επίσης στο καθορισμένο αρχείο. Αυτό μπορεί να είναι πολύ χρήσιμο για σκοπούς εντοπισμού σφαλμάτων προγραμμάτων. Το βοηθητικό πρόγραμμα tee μπορεί να αποκλειστεί από τη γραμμή εντολών με την εντολή notee. Εκτελώντας ξανά την εντολή tee θα ενεργοποιήσει ξανά την καταγραφή. Εάν η παράμετρος για την εντολή tee δεν έχει καθοριστεί, τότε θα χρησιμοποιηθεί το προηγούμενο αρχείο. Σημειώστε ότι η εντολή tee θα γράψει τα αποτελέσματα σε ένα αρχείο μετά από κάθε εντολή που εκτελείται, λίγο πριν εμφανιστεί η γραμμή εντολών για την επόμενη εντολή.
  • Η επιλογή --pager[=...] έκανε δυνατή την προβολή ή την αναζήτηση αποτελεσμάτων διαδραστικά με τα προγράμματα Unix λιγότερο , περισσότερα ή παρόμοια. Εάν δεν καθορίσετε ρητά ένα όρισμα σε αυτήν την παράμετρο, ο πελάτης mysql θα αναζητήσει τη μεταβλητή περιβάλλοντος PAGER και θα ορίσει την τιμή σε τηλεειδοποίηση . Το πρόγραμμα τηλεειδοποίησης μπορεί επίσης να ξεκινήσει από τη διαδραστική γραμμή εντολών με την εντολή τηλεειδοποίησης και να σταματήσει με την εντολή nopager. Η εντολή μπορεί να λάβει ένα όρισμα, το οποίο είναι προαιρετικό. Η εντολή τηλεειδοποίησης θα οριστεί στην τιμή αυτού του ορίσματος. Η εντολή τηλεειδοποίησης μπορεί να κληθεί χωρίς όρισμα, αλλά αυτό απαιτεί τη χρήση της επιλογής --pager ή μια κατάλληλη προεπιλεγμένη ρύθμιση του stdout . Η εντολή τηλεειδοποίησης λειτουργεί μόνο στο Unix επειδή χρησιμοποιεί τη συνάρτηση popen(), η οποία δεν είναι διαθέσιμη στα Windows. Αντίθετα, στα Windows, μπορείτε να χρησιμοποιήσετε την επιλογή tee, αν και σε ορισμένες περιπτώσεις αυτό είναι λιγότερο βολικό από τη χρήση της εντολής τηλεειδοποίησης.
  • Μερικές συμβουλές σχετικά με την εντολή τηλεειδοποίησης: Μπορεί να χρησιμοποιηθεί για την εγγραφή σε ένα αρχείο: mysql> pager cat > /tmp/log.txt και τα αποτελέσματα θα σταλούν μόνο σε ένα αρχείο. Τα προγράμματα που καλούνται από την εντολή τηλεειδοποίησης μπορούν να δεχτούν οποιεσδήποτε έγκυρες επιλογές: mysql> τηλεειδοποιητής λιγότερο -n -i -S Δώστε ιδιαίτερη προσοχή στην επιλογή -S στο παραπάνω παράδειγμα. Μπορεί να είναι πολύ χρήσιμο κατά την προβολή αποτελεσμάτων. Δοκιμάστε το με οριζόντια έξοδο (τερματίστε τις εντολές με "\g" ή ";") και κάθετη έξοδο (στο τέλος των εντολών με "\G"). Τα πολύ δυσκίνητα αποτελέσματα εξόδου είναι μερικές φορές δύσκολο να διαβαστούν από την οθόνη, σε αυτήν την περίπτωση η εντολή less με την επιλογή -S θα σας επιτρέψει να προβάλετε τα αποτελέσματα διαδραστικά από αριστερά προς τα δεξιά, ενώ εάν γραμμές με μήκος μεγαλύτερο από το πλάτος της οθόνης εμφανιστεί, η έξοδος τους θα συνεχιστεί σε μια νέα γραμμή . Τα δεδομένα που εξάγονται σε τέτοιες περιπτώσεις είναι πιο ευανάγνωστα. Όταν καλείτε διαδραστικά την εντολή less με την επιλογή "-S", μπορείτε να αλλάξετε τον τρόπο λειτουργίας της (ενεργοποιημένη/απενεργοποιημένη) από τη γραμμή εντολών. Για περισσότερες πληροφορίες σχετικά με το λιγότερο, δείτε την περιγραφή της εντολής "h".
  • Συμπερασματικά, σημειώνουμε (αν δεν το έχετε ήδη καταλάβει από τα προηγούμενα παραδείγματα) ότι είναι δυνατός ο συνδυασμός πολύ περίπλοκων τρόπων επεξεργασίας των αποτελεσμάτων. Έτσι, στο ακόλουθο παράδειγμα, τα αποτελέσματα θα σταλούν σε δύο διαφορετικούς καταλόγους που είναι τοποθετημένοι σε δύο διαφορετικούς σκληρούς δίσκους κάτω από το /dr1 και /dr2, και ωστόσο τα αποτελέσματα μπορούν να προβληθούν στην οθόνη με την εντολή less: mysql> pager cat | tee /dr1/tmp/res.txt | \ tee /dr2/tmp/res2.txt | λιγότερο -n -i -S
  • Οι παραπάνω λειτουργίες μπορούν επίσης να συνδυαστούν: εκτελώντας το tee και ρυθμίζοντας το pager σε λιγότερο, μπορείτε να προβάλετε τα αποτελέσματα με την εντολή less Unix και να συνεχίσετε να γράφετε σε ένα αρχείο. Η διαφορά μεταξύ του βοηθητικού προγράμματος Unix που χρησιμοποιείται από το πρόγραμμα τηλεειδοποίησης και της ενσωματωμένης εντολής tee στον υπολογιστή-πελάτη mysql είναι ότι η ενσωματωμένη εντολή tee λειτουργεί ακόμα και αν το βοηθητικό πρόγραμμα tee δεν είναι διαθέσιμο στο Unix. Το ενσωματωμένο μπλουζάκι καταγράφει επίσης ό,τι εμφανίζεται στην οθόνη, ενώ το βοηθητικό πρόγραμμα Tee Unix που χρησιμοποιείται με τον τηλεειδοποιητή δεν κάνει πολλά από αυτά. Τελευταίο αλλά εξίσου σημαντικό, η διαδραστική εντολή tee είναι πιο βολική για την εναλλαγή ενεργοποίησης/απενεργοποίησης τρόπων λειτουργίας, εάν μερικές φορές χρειάζεται να απενεργοποιήσετε αυτήν τη δυνατότητα κατά την εγγραφή σε ένα αρχείο.

Μπορείτε να αλλάξετε τη μορφή προτροπής στη γραμμή εντολών του προγράμματος-πελάτη mysql.

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

Επιλογή Περιγραφή
\vέκδοση mysql
\ρετο όνομα της βάσης δεδομένων που θα χρησιμοποιηθεί
\hόνομα κεντρικού υπολογιστή για σύνδεση
αριθμός θύρας μέσω της οποίας γίνεται η σύνδεση
\uΌνομα χρήστη
\Uπλήρης διεύθυνση [email προστατευμένο]
\\ ανάστροφη κάθετο "\"
\nχαρακτήρας νέας γραμμής
\ ttab stop
\ χώρος
\_ χώρο με υπογράμμιση
\Rστρατιωτική ζώνη ώρας (0-23)
\rώρα σύμφωνα με την τυπική ζώνη ώρας (1-12)
λεπτά
\ yδύο ψηφία του έτους
\Yτέσσερα ψηφία του έτους
\ΡΕπλήρης μορφή ημερομηνίας
\μικρόδευτερόλεπτα
\wημέρα της εβδομάδας σε μορφή τριών γραμμάτων (Δευτ., Τρίτη, ...)
ΠΜ/ΜΜ (π.μ./μ.μ.)
\oμήνα σε αριθμητική μορφή
\Oμήνας σε μορφή τριών γραμμάτων (Ιανουάριος, Φεβρουάριος, ...)
\ντοΈνας μετρητής που μετρά τον αριθμό των εντολών που έχουν εισαχθεί

Ένα `\" ακολουθούμενο από οποιοδήποτε άλλο γράμμα απλώς συμπληρώνει αυτό το γράμμα.

Μπορείτε να ορίσετε τις επιλογές προτροπής με τους εξής τρόπους:

Σε μεταβλητές περιβάλλοντοςΜπορείτε να ορίσετε τη μεταβλητή περιβάλλοντος MYSQL_PS1 για τη συμβολοσειρά προτροπής. Για παράδειγμα: shell> export MYSQL_PS1="(\u@\h) [\d]> " "my.cnf" ".my.cnf"Μπορείτε να ορίσετε την επιλογή προτροπής σε οποιοδήποτε αρχείο διαμόρφωσης MySQL στην ομάδα mysql. Για παράδειγμα: prompt=(\u@\h) [\d]>\_ Στη γραμμή εντολώνΜπορείτε να ορίσετε την επιλογή --prompt από τη γραμμή εντολών mysql. Για παράδειγμα: shell> mysql --prompt="(\u@\h) [\d]> " ( [email προστατευμένο]) > ΔιαδραστικόΜπορείτε επίσης να χρησιμοποιήσετε την εντολή prompt (ή \R) για να αλλάξετε τις ρυθμίσεις προτροπής διαδραστικά. Για παράδειγμα: mysql> prompt (\u@\h) [\d]>\_ PROMPT ορίστηκε σε "(\u@\h) [\d]>\_" ( [email προστατευμένο]) > ([email προστατευμένο]) > prompt Επιστροφή στην αρχική (προεπιλογή) Ρυθμίσεις PROMPT στο βοηθητικό πρόγραμμα mysql> mysql>