Někdy se stává, že uživatel při instalaci MySQL nenastaví heslo roota, pak se jako autorizace použije metoda unix_socket
. Pokud je použita tato autorizace, může se jako uživatel root ověřit pouze superuživatel systému nebo uživatel s právy sudo.
Při použití mysql_secure_installation
dojde k pokusu o změnu hesla, v takovém případě se zobrazí chyba mysql SET PASSWORD
has no significance for user'root
'@
'localhost
'. Řekneme si, jak ji dále řešit a odstranit.
Celý název chyby je následující:
SET PASSWORD has no significance for user 'root'@'localhost' as the authentication method used doesn't store authentication data in the MySQL server. Please consider using ALTER USER instead if you want to change authentication parameters.
Chyba se překládá jako:
"Nemá smysl provádět metodu SET PASSWORD
pro uživatele'root
'@
'localhost
', protože zvolená autorizační metoda nepodporuje ukládání autorizačních údajů. Pokud chcete změnit parametry autorizace, použijte ALTER USER
."
Autorizační metoda unix_socket neukládá hesla, neprovádí autorizaci pomocí hesla, ale kontroluje, zda konkrétní uživatel splňuje podmínky superuživatele. A neexistuje způsob, jak by uživatel mohl jednoduše přeskočit nastavení hesla roota (pokud nebylo nastaveno). Proto software neumožňuje pokračovat. Problém můžete vyřešit připojením k MySQL.
Zároveň je třeba změnit způsob autorizace a heslo:
sudo mysql
V prostředí SQL je třeba provést následující příkaz:
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';
Zavřete klienta MySQL příkazem:
exit;
Poté je třeba spustit mysql_secure_installation
a zadat heslo roota
. Poté můžete konfiguraci bez problémů dokončit. Upozorňujeme, že poté se budete moci připojit k mysql pomocí sudo bez hesla, protože je aktivována metoda autorizace heslem. Chcete-li se po mysql_secure_installation
vrátit k předchozímu nastavení, připojte se k MySQL.
Použijte heslo a proveďte:
ALTER USER 'root'@'localhost' IDENTIFIED WITH auth_socket;
To je vše - návod je dokončen.