MySQL Access nektet for bruker 'root'@'localhost'

MySQL Access nektet for bruker 'root'@'localhost'
"En av de vanligste feilene som MySQL brukere har møtt, er" MySQL Access nektet for brukeren 'Root'@'localhost'.”Og om du er en ny MySQL -bruker eller en nybegynner, å kjenne de forskjellige teknikkene for å løse det er fordelaktig.

Ved hjelp av denne guiden vil du oppdage tre metoder for å løse denne feilen.”

Hva betyr denne feilen?

Den beste måten å forstå denne feilen er å dele den ned i enkeltkomponenter. Denne feilen oppstår når du prøver å logge inn i MySQL -forekomsten på din lokale maskin, derav 'localhost.'

Et eksempel er som vist:

$ mysql -u root -p

Komponentene i feilen er som følger:

  1. Feil 1045 (28000) - refererer til henholdsvis feilkoden og SQLSTATE. For eksempel, i MySQL og MariaDB, betyr feilkoden 1045 tilgang nektet for det brukernavnet med det spesifiserte passordet.
  2. Den andre er meldingsstrengen. Feilmeldingen følger formatet: tilgang nektet for brukeren '%s'@'%s' (ved hjelp av passord:%s).

Merk: Den første %s i feilmeldingen refererer til brukernavnet, mens den andre refererer til verten.

Løsning 1: sudo til mysql

Den første og vanligste metoden for å løse denne feilen er å sudo inn i mysql -forekomsten og sette autht_plugin til mysql_native_password.

Åpne terminalen og løp:

$ sudo mysql

Skriv inn passordet for kontoen og fortsett.

Deretter endrer du Auth_plugin og angir et nytt passord for rotkontoen som vist:

Endre brukeren 'root@localhost' identifisert med mysql-native_password med 'passord';

Endring av autentiseringsplugin lar deg logge på serveren din.

Deretter kan du skylle privilegiene å oppdatere tilskuddstabellene:

Spyle privilegier;

Til slutt, gå ut av terminalen og prøv påloggingen din:

$ mysql -u root -p

Løsning 2- Rediger konfigurasjonsfilen manuelt

Hvis feilen vedvarer, kan det hende du må redigere MySQL -konfigurasjonsfilen. I de fleste tilfeller er det under navnet min.CNF i /etc eller /etc /mysql kataloger.

Finn denne filen i MySQL -installasjonsmappen for Windows og Mac -brukere.

Hvis filen ikke eksisterer, oppretter du den.

Åpne filen med tekstredigereren din og finn MySQLD -blokken.

$ nano/etc/mysql/min.CNF

Under [MySQLD] -blokken, legg til følgende oppføring.

Skip-graders-bord

Lukk og lagre filen.

Deretter start MySQL -serveren på nytt og logger inn.

$ sudo service mysql omstart
$ mysql -u root -p

Når du er logget inn, skyller du privilegiene og angir et nytt passord:

Spyle privilegier;
Endre brukeren 'root@localhost' identifisert med 'passord';

Forsikre deg om å erstatte kommandoen ovenfor med et sikkert passord.

Når den er fullført, rediger min.CNF -fil og fjern oppføringen vi la til tidligere.

Start MySQL -serveren på nytt og logger på med det nye passordet ditt.

Løsning 3 - Start MySQL i sikker modus

MySQL gir deg MySQLD_SAFE -verktøyet for å starte MySQL -serveren. Dette verktøyet lar oss spesifisere sikre funksjoner når vi starter og starter serveren for å diagnostisere feil.

Begynn med å stoppe MySQL -serveren.

$ sudo service mysql stopp

Neste, start MySQL uten autentisering som;

$ mysqld_safe---skip-graders-bord og

Kommandoen vil starte serveren i bakgrunnen som en jobb.

Når demonen kjører (med autentisering deaktivert), åpner du en ny terminal og kjør:

$ mysql -u root -p

Kommandoen over skal tillate deg å logge inn uten passord.

Når du er logget inn, skyller du privilegiene og angir et nytt passord som:

Spyle privilegier;
Endre brukeren 'root@localhost' identifisert med 'passord';

Lukk økten og start MySQL på nytt.

Logg deg på serveren din med det nye passordet ditt.

Lukking

I denne artikkelen dekket vi tre hovedmetoder for å løse

"MySQL Access nektet for brukeren 'root@localhost'".

Vi håper denne opplæringen hjalp deg med å løse denne feilen.