sql >> Databáze >  >> RDS >> MariaDB

Oprava:Přístup odepřen uživateli ‚root‘@‘localhost‘ v MariaDB

Pokud se vám zobrazuje chyba sdělující, že root je přístup odepřen uživatel v MariaDB, může vám pomoci tento článek.

Chyba

Pokoušel jsem se importovat informace o časovém pásmu mého systému do MariaDB pomocí následujícího příkazu:

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

Výsledkem však byla následující chyba:

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

Příčina

Po prozkoumání toho jsem si uvědomil, že root uživatel ještě neměl nastavené heslo.

Když jsem spustil následující dotaz:

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

Dostal jsem následující výsledek:

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

Dokumentace MariaDB uvádí následující:

Přesto se někteří uživatelé mohou chtít přihlásit jako root MariaDB bez použití sudo. Stará metoda ověřování – konvenční heslo MariaDB – je tedy stále dostupná. Ve výchozím nastavení je zakázáno ("invalid" není platný hash hesla), ale heslo lze nastavit pomocí obvyklého SET PASSWORD prohlášení. A stále si zachováte přístup bez hesla přes sudo.

Takže to vypadá jako naše odpověď.

Řešení

Podle výše uvedeného odstavce jsem potřeboval nastavit heslo pro root uživatel:

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

Spuštění toho (s jiným heslem) udělalo trik.

Takže pokud se zobrazí výše uvedená chyba, možná to pomůže.


  1. Jak spustit skript SQL Plus v PowerShell

  2. Jak změnit aktuální formát data v SQL Server (T-SQL)

  3. Jak mohu rozdělit dlouhý, jeden SQLiteOpenHelper do několika tříd, jednu pro každou tabulku

  4. Bring Your Own Cloud (BYOC) vs. Dedikovaný hosting na ScaleGrid