I et uheldigt tilfælde, hvor du glemmer eller mister din MySQL root-adgangskode, har du helt sikkert brug for en måde at gendanne den på. Det, vi skal vide, er, at adgangskoden er gemt i brugertabellen. Det betyder, at vi skal finde ud af en måde at omgå MySQL-godkendelsen på, så vi kan opdatere adgangskodeposten.
Heldigvis er der en nem at opnå, og denne vejledning vil guide dig gennem processen med at gendanne eller nulstille root-adgangskoden i MySQL 8.0-versionen.
I henhold til MySQL-dokumentationen er der to måder at nulstille MySQL-rodadgangskoden på. Vi vil gennemgå begge dele.
Nulstil MySQL root-adgangskode ved hjælp af –init-fil
En af måderne at nulstille root-adgangskoden på er at oprette en lokal fil og derefter starte MySQL-tjenesten ved hjælp af --init-file
mulighed som vist.
# vim /home/user/init-file.txt
Det er vigtigt, at du sørger for, at filen kan læses af mysql-brugeren. Indsæt følgende i den fil:
ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password';
I ovenstående ændres "nyt_adgangskode ” med den adgangskode, du ønsker at 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 vil starte MySQL-tjenesten, og under processen vil den udføre init-filen, som du har oprettet, og dermed vil adgangskoden til root-brugeren blive opdateret. Sørg for at slette filen, når adgangskoden er blevet 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 skulle nu være i stand til at 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 --skip-grant-tables
mulighed. Dette er mindre sikkert, da mens tjenesten startes på den måde, kan alle brugere oprette forbindelse uden adgangskode.
Hvis serveren er startet --skip-grant-tables
, muligheden for --skip-networking
aktiveres automatisk, så fjernforbindelser vil ikke være 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 bevillingerne. På den måde vil vi være i stand til at æ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 faktiske 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 burde være i stand til at oprette forbindelse med din nye adgangskode.
# mysql -u root -p
Du vil måske også gerne læse disse nyttige følgende MySQL-relaterede artikler.
- Sådan installeres MySQL 8 i CentOS, RHEL og Fedora
- 15 Nyttige MySQL-ydelsesjustering og optimeringstip
- 12 MySQL-sikkerhedspraksis til Linux
- 4 nyttige kommandolinjeværktøjer til at overvåge MySQL-ydeevne
- MySQL-databaseadministrationskommandoer
Konklusion
I denne artikel lærte du, hvordan du nulstiller mistet root-adgangskode til MySQL 8.0-serveren. Jeg håber, at processen var let.