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.