Πώς να επαναφέρετε τον κωδικό πρόσβασης ρίζας στο MySQL 8.0
Σε μια ατυχή περίπτωση να ξεχάσετε ή να χάσετε τον κωδικό πρόσβασης root MySQL, σίγουρα θα χρειαστείτε έναν τρόπο να τον ανακτήσετε με κάποιο τρόπο. Αυτό που πρέπει να γνωρίζουμε είναι ότι ο κωδικός πρόσβασης αποθηκεύεται στον πίνακα χρηστών. Αυτό σημαίνει ότι πρέπει να βρούμε έναν τρόπο να παρακάμψουμε τον έλεγχο ταυτότητας MySQL, ώστε να μπορούμε να ενημερώσουμε την εγγραφή κωδικού πρόσβασης.
Ευτυχώς υπάρχει ένα εύκολο να επιτευχθεί και αυτό το σεμινάριο θα σας καθοδηγήσει στη διαδικασία ανάκτησης ή επαναφοράς κωδικού πρόσβασης root στην έκδοση MySQL 8.0.
Σύμφωνα με την τεκμηρίωση της MySQL, υπάρχουν δύο τρόποι επαναφοράς του κωδικού πρόσβασης root MySQL. Θα αναθεωρήσουμε και τα δύο.
Επαναφορά του κωδικού πρόσβασης ρίζας MySQL χρησιμοποιώντας –init-file
Ένας από τους τρόπους επαναφοράς του κωδικού πρόσβασης root είναι να δημιουργήσετε ένα τοπικό αρχείο και στη συνέχεια να ξεκινήσετε την υπηρεσία MySQL χρησιμοποιώντας την επιλογή --init-file
, όπως φαίνεται.
vim /home/user/init-file.txt
Είναι σημαντικό να βεβαιωθείτε ότι το αρχείο είναι αναγνώσιμο από τον χρήστη mysql. Μέσα σε αυτό το αρχείο επικολλήστε τα εξής:
ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password';
Στο παραπάνω αλλάξτε το "new_password" με τον κωδικό πρόσβασης που θέλετε να χρησιμοποιήσετε.
Τώρα βεβαιωθείτε ότι η υπηρεσία MySQL έχει διακοπεί. Μπορείτε να κάνετε τα εξής:
systemctl stop mysqld.service # for distros using systemd
/etc/init.d/mysqld stop # for distros using init
Στη συνέχεια εκτελέστε τα εξής:
mysqld --user=mysql --init-file=/home/user/init-file.txt --console
Αυτό θα ξεκινήσει την υπηρεσία MySQL και κατά τη διάρκεια της διαδικασίας θα εκτελέσει το αρχείο init που έχετε δημιουργήσει και έτσι θα ενημερωθεί ο κωδικός πρόσβασης για τον χρήστη root. Βεβαιωθείτε ότι έχετε διαγράψει το αρχείο μετά την επαναφορά του κωδικού πρόσβασης.
Φροντίστε να σταματήσετε τον διακομιστή και να τον ξεκινήσετε κανονικά μετά από αυτό.
systemctl stop mysqld.service # for distros using systemd
systemctl restart mysqld.service # for distros using systemd
/etc/init.d/mysqld stop # for distros using init
/etc/init.d/mysqld restart # for distros using init
Θα πρέπει τώρα να μπορείτε να συνδεθείτε στον διακομιστή MySQL ως root χρησιμοποιώντας τον νέο κωδικό πρόσβασης.
mysql -u root -p
Επαναφορά κωδικού πρόσβασης ρίζας MySQL χρησιμοποιώντας πίνακες –παράλειψη-χορήγησης
Η δεύτερη επιλογή που έχουμε είναι να ξεκινήσουμε την υπηρεσία MySQL με την επιλογή --skip-grant-tables
. Αυτό είναι λιγότερο ασφαλές καθώς ενώ η υπηρεσία ξεκινά με αυτόν τον τρόπο, όλοι οι χρήστες μπορούν να συνδεθούν χωρίς κωδικό πρόσβασης.
Εάν ξεκινήσει ο διακομιστής --skip-grant-tables
, η επιλογή για --skip-networking
ενεργοποιείται αυτόματα, επομένως οι απομακρυσμένες συνδέσεις δεν θα είναι διαθέσιμες.
Πρώτα βεβαιωθείτε ότι η υπηρεσία MySQL έχει διακοπεί.
systemctl stop mysqld.service # for distros using systemd
/etc/init.d/mysqld stop # for distros using init
Στη συνέχεια ξεκινήστε την υπηρεσία με την ακόλουθη επιλογή.
mysqld --skip-grant-tables --user=mysql &
Στη συνέχεια, μπορείτε να συνδεθείτε στον διακομιστή mysql απλά εκτελώντας.
mysql
Εφόσον η διαχείριση λογαριασμού είναι απενεργοποιημένη όταν η υπηρεσία ξεκινά με την επιλογή --skip-grant-tables
, θα πρέπει να φορτώσουμε ξανά τις επιχορηγήσεις. Με αυτόν τον τρόπο θα μπορούμε να αλλάξουμε τον κωδικό πρόσβασης αργότερα:
FLUSH PRIVILEGES;
Τώρα μπορείτε να εκτελέσετε το ακόλουθο ερώτημα για να ενημερώσετε τον κωδικό πρόσβασης. Φροντίστε να αλλάξετε το "new_password" με τον πραγματικό κωδικό πρόσβασης που θέλετε να χρησιμοποιήσετε.
ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_passowrd';
Τώρα σταματήστε τον διακομιστή MySQL και ξεκινήστε τον κανονικά.
systemctl stop mysqld.service # for distros using systemd
systemctl restart mysqld.service # for distros using systemd
/etc/init.d/mysqld stop # for distros using init
/etc/init.d/mysqld restart # for distros using init
Θα πρέπει να μπορείτε να συνδεθείτε με τον νέο σας κωδικό πρόσβασης.
mysql -u root -p
Μπορεί επίσης να θέλετε να διαβάσετε αυτά τα χρήσιμα παρακάτω άρθρα σχετικά με τη MySQL.
- Πώς να εγκαταστήσετε το MySQL 8 σε CentOS, RHEL και Fedora
- 15 Χρήσιμες συμβουλές συντονισμού και βελτιστοποίησης απόδοσης MySQL
- 12 πρακτικές ασφάλειας MySQL για Linux
- 4 Χρήσιμα εργαλεία γραμμής εντολών για την παρακολούθηση της απόδοσης της MySQL
- Εντολές διαχείρισης βάσης δεδομένων MySQL
συμπέρασμα
Σε αυτό το άρθρο μάθατε πώς να επαναφέρετε τον χαμένο κωδικό πρόσβασης root για τον διακομιστή MySQL 8.0. Ελπίζω η διαδικασία να ήταν εύκολη.