sql >> Database >  >> RDS >> Mysql

Hoe root-wachtwoord opnieuw in te stellen in MySQL 8.0

In het ongelukkige geval dat u uw MySQL-rootwachtwoord vergeet of verliest, heeft u zeker een manier nodig om het op de een of andere manier te herstellen. Wat we moeten weten, is dat het wachtwoord is opgeslagen in de gebruikerstabel. Dit betekent dat we een manier moeten bedenken om de MySQL-authenticatie te omzeilen, zodat we het wachtwoordrecord kunnen bijwerken.

Gelukkig is er een eenvoudig te bereiken en deze tutorial zal je door het proces van het herstellen of resetten van het root-wachtwoord in MySQL 8.0-versie leiden.

Volgens de MySQL-documentatie zijn er twee manieren om het root MySQL-wachtwoord opnieuw in te stellen. We zullen beide beoordelen.

Stel MySQL-rootwachtwoord opnieuw in met –init-file

Een van de manieren om het root-wachtwoord opnieuw in te stellen, is door een lokaal bestand te maken en vervolgens de MySQL-service te starten met behulp van --init-file optie zoals getoond.

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

Het is belangrijk dat u ervoor zorgt dat het bestand leesbaar is voor de mysql-gebruiker. Plak het volgende in dat bestand:

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

In de bovenstaande wijziging "new_password ” met het wachtwoord dat u wilt gebruiken.

Zorg er nu voor dat de MySQL-service is gestopt. U kunt het volgende doen:

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

Voer vervolgens het volgende uit:

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

Hiermee wordt de MySQL-service gestart en tijdens het proces wordt het init-bestand uitgevoerd dat u hebt gemaakt en dus wordt het wachtwoord voor de rootgebruiker bijgewerkt. Zorg ervoor dat u het bestand verwijdert zodra het wachtwoord opnieuw is ingesteld.

Zorg ervoor dat u de server stopt en daarna normaal start.

# 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

U zou nu als root verbinding moeten kunnen maken met de MySQL-server met het nieuwe wachtwoord.

# mysql -u root -p

Stel MySQL-rootwachtwoord opnieuw in met –skip-grant-tables

De tweede optie die we hebben is om de MySQL-service te starten met de --skip-grant-tables optie. Dit is minder veilig, want terwijl de service op die manier wordt gestart, kunnen alle gebruikers verbinding maken zonder wachtwoord.

Als de server is gestart --skip-grant-tables , de optie voor --skip-networking wordt automatisch geactiveerd, dus externe verbindingen zijn niet beschikbaar.

Zorg er eerst voor dat de MySQL-service is gestopt.

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

Start vervolgens de service met de volgende optie.

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

Vervolgens kunt u verbinding maken met de mysql-server door simpelweg te starten.

# mysql

Aangezien accountbeheer is uitgeschakeld wanneer de service wordt gestart met --skip-grant-tables optie, zullen we de subsidies moeten herladen. Op die manier kunnen we het wachtwoord later wijzigen:

# FLUSH PRIVILEGES;

Nu kunt u de volgende query uitvoeren om het wachtwoord bij te werken. Zorg ervoor dat u "new_password" wijzigt met het daadwerkelijke wachtwoord dat u wilt gebruiken.

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

Stop nu de MySQL-server en start hem normaal.

# 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

U zou verbinding moeten kunnen maken met uw nieuwe wachtwoord.

# mysql -u root -p

Misschien vind je het ook leuk om deze nuttige volgende MySQL-gerelateerde artikelen te lezen.

  1. MySQL 8 installeren in CentOS, RHEL en Fedora
  2. 15 handige tips voor het afstemmen en optimaliseren van MySQL-prestaties
  3. 12 MySQL-beveiligingspraktijken voor Linux
  4. 4 Handige Commandline-tools om MySQL-prestaties te controleren
  5. Opdrachten voor MySQL-databasebeheer
Conclusie

In dit artikel heb je geleerd hoe je het verloren root-wachtwoord voor de MySQL 8.0-server kunt resetten. Ik hoop dat het proces eenvoudig was.


  1. Beste opties voor databasecontrole die beschikbaar zijn voor uw bedrijf

  2. Lijst met MySQL-specificaties voor datumnotatie

  3. Verklaringen voorbereiden en parameters binden in Postgresql voor C++

  4. Locatie van mijn.cnf-bestand op macOS