sql >> Databasteknik >  >> RDS >> Mysql

Hur man återställer rotlösenordet i MySQL 8.0

I en olycklig händelse av att glömma eller förlora ditt MySQL root-lösenord, kommer du säkert att behöva ett sätt att återställa det på något sätt. Vad vi behöver veta är att lösenordet lagras i användartabellen. Det betyder att vi måste hitta ett sätt att kringgå MySQL-autentiseringen, så att vi kan uppdatera lösenordsposten.

Lyckligtvis finns det ett enkelt att uppnå och den här handledningen guidar dig genom processen att återställa eller återställa root-lösenordet i MySQL 8.0-versionen.

Enligt MySQL-dokumentationen finns det två sätt att återställa root MySQL-lösenordet. Vi kommer att granska båda.

Återställ MySQL-rootlösenordet med –init-fil

Ett av sätten att återställa root-lösenordet är att skapa en lokal fil och sedan starta MySQL-tjänsten med --init-file alternativ som visas.

# vim /home/user/init-file.txt

Det är viktigt att du ser till att filen är läsbar för mysql-användaren. Klistra in följande i filen:

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

I ovanstående ändra "nytt_lösenord ” med lösenordet som du vill använda.

Se nu till att MySQL-tjänsten är stoppad. Du kan göra följande:

# systemctl stop mysqld.service     # for distros using systemd 
# /etc/init.d/mysqld stop           # for distros using init

Kör sedan följande:

# mysqld --user=mysql --init-file=/home/user/init-file.txt --console

Detta kommer att starta MySQL-tjänsten och under processen kommer den att köra init-filen som du har skapat och därmed kommer lösenordet för rootanvändaren att uppdateras. Se till att ta bort filen när lösenordet har återställts.

Se till att stoppa servern och starta den normalt efter det.

# 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 bör nu kunna ansluta till MySQL-servern som root med det nya lösenordet.

# mysql -u root -p

Återställ MySQL-rootlösenordet med –skip-grant-tables

Det andra alternativet vi har är att starta MySQL-tjänsten med --skip-grant-tables alternativ. Detta är mindre säkert eftersom när tjänsten startas på det sättet kan alla användare ansluta utan lösenord.

Om servern startas --skip-grant-tables , alternativet för --skip-networking aktiveras automatiskt så att fjärranslutningar inte är tillgängliga.

Se först till att MySQL-tjänsten är stoppad.

# systemctl stop mysqld.service     # for distros using systemd 
# /etc/init.d/mysqld stop           # for distros using init

Starta sedan tjänsten med följande alternativ.

# mysqld --skip-grant-tables --user=mysql &

Sedan kan du ansluta till mysql-servern genom att helt enkelt köra.

# mysql

Eftersom kontohantering är inaktiverat när tjänsten startas med --skip-grant-tables alternativ måste vi ladda om bidragen. På så sätt kommer vi att kunna ändra lösenordet senare:

# FLUSH PRIVILEGES;

Nu kan du köra följande fråga för att uppdatera lösenordet. Se till att ändra "new_password" med det faktiska lösenord du vill använda.

# ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_passowrd';

Stoppa nu MySQL-servern och starta 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 bör kunna ansluta med ditt nya lösenord.

# mysql -u root -p

Du kanske också vill läsa dessa användbara efter MySQL-relaterade artiklar.

  1. Hur man installerar MySQL 8 i CentOS, RHEL och Fedora
  2. 15 användbara tips för MySQL-prestandajustering och optimering
  3. 12 MySQL-säkerhetsmetoder för Linux
  4. 4 användbara kommandoradsverktyg för att övervaka MySQL-prestanda
  5. Startkommandon för MySQL-databasadministration
Slutsats

I den här artikeln lärde du dig hur du återställer förlorat root-lösenord för MySQL 8.0-servern. Jag hoppas att processen var enkel.


  1. 5 mycket vanliga SQL-frågor design misstag att undvika till varje pris

  2. Arbetar med JDBC och Spring

  3. GROUP BY utan aggregatfunktion

  4. MySQL raderar dubbletter av poster men behåll de senaste