Sådan nulstilles rodadgangskode i MySQL 8.0
I en uheldig situation med at glemme eller miste din MySQL root-adgangskode, har du helt sikkert brug for en måde at gendanne det på en eller anden måde. Det, vi har brug for at vide, er, at adgangskoden er gemt i tabellen over brugere. Dette betyder, at vi skal finde ud af en måde at omgå MySQL-godkendelse, så vi kan opdatere adgangskodeposten.
Heldigvis er der en let at opnå, og denne vejledning vil guide dig gennem processen med at gendanne eller nulstille rodadgangskoden i MySQL 8.0-versionen.
I henhold til MySQL-dokumentation er der to måder at nulstille root-MySQL-adgangskoden på. Vi gennemgår begge dele.
Nulstil MySQL-rodadgangskode ved hjælp –init-fil
En af måderne til at nulstille rodadgangskoden er at oprette en lokal fil og derefter starte MySQL-tjenesten ved hjælp af --init-file
som vist.
# vim /home/user/init-file.txt
Det er vigtigt, at du sørger for, at filen kan læses af mysql-brugeren. Inden for denne fil skal du indsætte følgende:
ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password';
I ovenstående ændres “new_password” med den adgangskode, du vil bruge.
Sørg nu for, at MySQL-tjenesten er stoppet. Du kan gøre følgende:
# systemctl stop mysqld.service # for distros using systemd # /etc/init.d/mysqld stop # for distros using init
Kør derefter følgende:
# mysqld --user=mysql --init-file=/home/user/init-file.txt --console
Dette starter MySQL-tjenesten, og under processen udfører den den init-fil, du har oprettet, og således opdateres adgangskoden til rodbrugeren. Sørg for at slette filen, når adgangskoden er nulstillet.
Sørg for at stoppe serveren og starte den normalt derefter.
# 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
Du skal nu kunne oprette forbindelse til MySQL-serveren som root ved hjælp af den nye adgangskode.
# mysql -u root -p
Nulstil MySQL root-adgangskode ved hjælp af –skip-grant-tables
Den anden mulighed, vi har, er at starte MySQL-tjenesten med indstillingen --skip-grant-tables
. Dette er mindre sikkert, da alle brugere kan oprette forbindelse uden adgangskode, mens tjenesten startes på den måde.
Hvis serveren startes --skip-grant-tables
, aktiveres indstillingen for --skip-networking
automatisk, så fjernforbindelser ikke er tilgængelige.
Sørg først for, at MySQL-tjenesten er stoppet.
# systemctl stop mysqld.service # for distros using systemd # /etc/init.d/mysqld stop # for distros using init
Start derefter tjenesten med følgende mulighed.
# mysqld --skip-grant-tables --user=mysql &
Derefter kan du oprette forbindelse til mysql-serveren ved blot at køre.
# mysql
Da kontoadministration er deaktiveret, når tjenesten startes med --skip-grant-tables
mulighed, bliver vi nødt til at genindlæse tilskuddene. På den måde kan vi ændre adgangskoden senere:
# FLUSH PRIVILEGES;
Nu kan du køre følgende forespørgsel for at opdatere adgangskoden. Sørg for at ændre "new_password" med den aktuelle adgangskode, du ønsker at bruge.
# ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_passowrd';
Stop nu MySQL-serveren, og start den normalt.
# 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
Du skal være i stand til at oprette forbindelse til din nye adgangskode.
# mysql -u root -p
Du kan også godt lide at læse disse nyttige efter MySQL-relaterede artikler.
- Sådan installeres MySQL 8 i CentOS, RHEL og Fedora
- 15 Nyttige MySQL Performance Tuning og optimeringstips
- 12 MySQL-sikkerhedspraksis til Linux
- 4 Nyttige kommandolinjeværktøjer til overvågning af MySQL-ydeevne
- MySQL Database Administartion Commands
I denne artikel lærte du, hvordan du nulstiller mistet rodadgangskode til MySQL 8.0-serveren. Jeg håber, at processen var let.