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.

  1. Sådan installeres MySQL 8 i CentOS, RHEL og Fedora
  2. 15 Nyttige MySQL Performance Tuning og optimeringstips
  3. 12 MySQL-sikkerhedspraksis til Linux
  4. 4 Nyttige kommandolinjeværktøjer til overvågning af MySQL-ydeevne
  5. 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.