sql >> Database teknologi >  >> RDS >> MariaDB

Fix:Adgang nægtet for brugeren 'root'@'localhost' i MariaDB

Hvis du får en fejl, der fortæller dig, at adgang nægtes for root bruger i MariaDB, kan denne artikel måske hjælpe.

Fejlen

Jeg forsøgte at importere mit systems tidszoneoplysninger til MariaDB med følgende kommando:

mysql_tzinfo_to_sql /usr/share/zoneinfo | mysql -u root -p mysql

Men det resulterede i følgende fejl:

ERROR 1698 (28000): Access denied for user 'root'@'localhost'

Årsagen

Efter at have undersøgt dette, indså jeg, at root brugeren havde endnu ikke fået sin adgangskode indstillet.

Da jeg kørte følgende forespørgsel:

SELECT user, password 
FROM user
WHERE User = 'root';

Jeg fik følgende resultat:

+-------------+----------+
| User        | Password |
+-------------+----------+
| root        | invalid  |
+-------------+----------+

MariaDB-dokumentationen siger følgende:

Alligevel kan nogle brugere ønske at logge ind som MariaDB root uden at bruge sudo. Derfor er den gamle godkendelsesmetode - konventionel MariaDB-adgangskode - stadig tilgængelig. Som standard er den deaktiveret ("ugyldig" er ikke en gyldig adgangskodehash), men man kan indstille adgangskoden med en sædvanlig SET PASSWORD udmelding. Og behold stadig adgangskoden uden adgang via sudo.

Så det ligner vores svar.

Løsningen

Som i ovenstående afsnit, skulle jeg indstille adgangskoden til root bruger:

SET PASSWORD FOR 'root'@localhost = PASSWORD("myReallyStrongPwd");

At køre det (med en anden adgangskode) gjorde det trick.

Så hvis du får ovenstående fejl, vil det måske hjælpe.


  1. Brug af Substr med Instr til at udtrække en streng i Oracle

  2. Hvordan vises funktionen, proceduren, udløser kildekoden i postgresql?

  3. Hvorfor skal du lære PostgreSQL?

  4. Hvordan LYDER SOM virker i MariaDB