Android

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

Ruby on Rails by Leila Hofer

Ruby on Rails by Leila Hofer

Πίνακας περιεχομένων:

Anonim

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

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

Πριν ξεκινήσεις

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

Για να ανοίξετε την εντολή MySQL, πληκτρολογήστε την ακόλουθη εντολή και εισαγάγετε τον κωδικό πρόσβασης χρήστη MySQL root όταν σας ζητηθεί:

mysql -u root -p

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

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

CREATE DATABASE database_name;

Query OK, 1 row affected (0.00 sec)

ERROR 1007 (HY000): Can't create database 'database_name'; database exists

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

CREATE DATABASE IF NOT EXISTS database_name;

Query OK, 1 row affected, 1 warning (0.00 sec)

Στην παραπάνω έξοδο, το Query OK σημαίνει ότι το ερώτημα ήταν επιτυχές και 1 warning μας λέει ότι η βάση δεδομένων υπάρχει ήδη και δεν δημιουργήθηκε νέα βάση δεδομένων.

Κατάλογος όλων των βάσεων δεδομένων MySQL

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

SHOW DATABASES;

Η έξοδος θα φαίνεται κάπως έτσι:

+--------------------+ | Database | +--------------------+ | information_schema | | database_name | | mysql | | performance_schema | | sys | +--------------------+ 5 rows in set (0.00 sec)

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

Διαγράψτε μια βάση δεδομένων MySQL

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

Για να διαγράψετε μια βάση δεδομένων MySQL ή MariaDB, εκτελέστε την ακόλουθη εντολή:

DROP DATABASE database_name;

Query OK, 0 rows affected (0.00 sec)

ERROR 1008 (HY000): Can't drop database 'database_name'; database doesn't exist

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

DROP DATABASE IF EXISTS database_name;

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

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

Για να δημιουργήσετε ένα νέο λογαριασμό χρήστη MySQL, εκτελέστε την ακόλουθη εντολή, απλώς αντικαταστήστε το "database_user" με το όνομα του χρήστη που θέλετε να δημιουργήσετε:

CREATE USER 'database_user'@'localhost' IDENTIFIED BY 'user_password';

Στην παραπάνω εντολή έχουμε ορίσει το μέρος του hostname στο localhost που σημαίνει ότι αυτός ο χρήστης θα είναι σε θέση να συνδεθεί με τον MySQL server μόνο από το localhost (δηλ. Από το σύστημα όπου τρέχει ο MySQL Server). Αν θέλετε να χορηγήσετε πρόσβαση από άλλον κεντρικό υπολογιστή, απλώς αλλάξτε το localhost host με την απομακρυσμένη μηχανή IP ή χρησιμοποιήστε wildcard για το μέρος του κεντρικού υπολογιστή, πράγμα που σημαίνει ότι ο λογαριασμός χρήστη θα μπορεί να συνδεθεί από οποιονδήποτε κεντρικό υπολογιστή.

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

CREATE USER IF NOT EXISTS 'database_user'@'localhost' IDENTIFIED BY 'user_password';

Query OK, 0 rows affected, 1 warning (0.00 sec)

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

Η σύνταξη αλλαγής ενός κωδικού πρόσβασης λογαριασμού MySQL ή MariaDB εξαρτάται από την έκδοση του διακομιστή που εκτελείτε στο σύστημά σας.

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

mysql --version

ALTER USER 'database_user'@'localhost' IDENTIFIED BY 'new_password';

SET PASSWORD FOR 'database_user'@'localhost' = PASSWORD('new_password');

Και στις δύο περιπτώσεις, η παραγωγή θα πρέπει να φαίνεται ως εξής:

Query OK, 0 rows affected (0.00 sec)

Κατάλογος όλων των λογαριασμών χρηστών της MySQL

Μπορείτε να απαριθμήσετε όλους τους λογαριασμούς χρηστών MySQL ή MariaDB, mysql.users πίνακα mysql.users :

SELECT user, host FROM mysql.user;

Η έξοδος θα πρέπει να φαίνεται παρόμοια με την παρακάτω:

+------------------+-----------+ | user | host | +------------------+-----------+ | database_user | % | | database_user | localhost | | debian-sys-maint | localhost | | mysql.session | localhost | | mysql.sys | localhost | | root | localhost | +------------------+-----------+ 6 rows in set (0.00 sec)

Διαγράψτε το λογαριασμό χρήστη MySQL

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

DROP USER 'database_user@'localhost';

ERROR 1396 (HY000): Operation DROP USER failed for 'database_user'@'localhost'

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

DROP USER IF EXISTS 'database_user'@'localhost';

Query OK, 0 rows affected, 1 warning (0.00 sec)

Επιχορηγήσεις σε λογαριασμό χρήστη της MySQL

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

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

GRANT ALL PRIVILEGES ON database_name.* TO 'database_user'@'localhost';

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

GRANT ALL PRIVILEGES ON *.* TO 'database_user'@'localhost';

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

GRANT ALL PRIVILEGES ON database_name.table_name TO 'database_user'@'localhost';

GRANT SELECT, INSERT, DELETE ON database_name.* TO database_user@'localhost';

Ανάκληση δικαιωμάτων από έναν λογαριασμό χρήστη MySQL

REVOKE ALL PRIVILEGES ON database_name.* TO 'database_user'@'localhost';

Προβολή προνομίων λογαριασμού χρήστη MySQL

Για να βρείτε τα δικαιώματα που παρέχονται σε συγκεκριμένο τύπο λογαριασμού χρήστη MySQL:

SHOW GRANTS FOR 'database_user'@'localhost';

+---------------------------------------------------------------------------+ | Grants for database_user@localhost | +---------------------------------------------------------------------------+ | GRANT USAGE ON *.* TO 'database_user'@'localhost' | | GRANT ALL PRIVILEGES ON `database_name`.* TO 'database_user'@'localhost' | +---------------------------------------------------------------------------+ 2 rows in set (0.00 sec)

συμπέρασμα

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

Αυτό είναι όλο! Εάν έχετε οποιεσδήποτε ερωτήσεις ή σχόλια, μπορείτε να αφήσετε ένα σχόλιο.

mysql mariadb