Při práci s DBMS MySQL je nesmírně důležité vědět, jak změnit uživatelské heslo. Zdá se, že tento úkol lze vyřešit pouze v případě, že máte práva superuživatele. Ale i běžný uživatel může za určitých okolností heslo změnit. V tomto článku si povíme, jak to udělat za běžných okolností.
Heslo uživatele můžete změnit různými způsoby. V prostředí MySQL jsou pro tento úkol k dispozici dva příkazy - SET PASSWORD
a ALTER USER
. Povíme si o každém z těchto dvou způsobů podrobněji.
Na začátku letošního roku má MySQL dvě hlavní verze. První z nich je zastaralá, ale stále podporovaná (jedná se o verzi 5.7), a nejaktuálnější je v současné době verze 8.0. V této verzi je možné použít i další verze. Jak zjistit verzi MySQL? Můžete to udělat pomocí speciálního příkazu, který je třeba spustit v terminálu:
$ mysql –version
Jak je vidět z obrázku výše, je použita verze 8.0.28, ale je důležité si uvědomit, že ALTER USER
je relevantní pouze v předchozích verzích MySQL, v novějších verzích můžete používat obě verze.
Chcete-li vstoupit do konzoly, měli byste se přihlásit k MySQL pomocí svého přihlašovacího jména a hesla. Pokud je uživatel na serveru již autorizován, měli byste všechny akce provádět jeho jménem. Při prvním použití MySQL byste měli použít práva roota.
Příkaz pro přihlášení jako root:
$ mysql -u root –p
Poté se zobrazí výzva k zadání hesla. Zbývá zadat heslo, stisknout klávesu Enter, ihned poté se načte rozhraní MySQL se všemi dostupnými příkazy.
Zvláštností MySQL je, že má samostatného hostitele, ke kterému se váže účet. Všimněme si tří hlavních hostitelů:
Localhost umožňuje pouze místní přihlášení bez možnosti vzdáleného připojení, % znamená, že účet lze používat z libovolného hostitele, IP adresa/jméno domény znamená, že účet lze používat pouze na zvoleném doménovém jménu/IP adrese.
Pro zjištění typu hostitele účtu musíme spustit následující SQL dotaz:
$ SELECT user, host FROM mysql.user
Na obrázku výše vidíme, že uživatel alex má hostitele %. Tento hostitel by měl být použit při změně hesla. Uživatelé v MySQL a všechny informace o nich jsou uloženy v databázi mysql v tabulce user.
Heslo můžete změnit také pomocí příkazu SET PASSWORD
. Chcete-li změnit heslo uživatele alex s host % na somepassword666, musíte použít následující příkaz:
$ SET PASSWORD FOR 'alex'@'%' = 'somepassword666';
Kód uživatele můžete změnit pomocí jiného příkazu - ALTER USER
. Pro změnu hesla pro uživatele alex s host % na jinéheslo666 provedeme dotaz SQL:
$ ALTER USER 'alex'@'%' IDENTIFIED BY 'anotherpassword666';
Všimněte si, že uživatelské jméno a hostitel jsou uzavřeny v jednoduchých uvozovkách, bez těchto uvozovek nebude MySQL schopna řetězec rozpoznat.
Nyní obnovte mezipaměť oprávnění:
$ FLUSH PRIVILEGES;
Po změně hesla, změně oprávnění a obnovení mezipaměti byste měli provést ověření přihlášení jako uživatel, jehož heslo bylo změněno.
Ukončete
shell MySQL provedením příkazu exit
:
$ exit
Nyní se přihlaste do shellu:
$ mysql -u alex -p
Pokud se při přihlašování zobrazí systémová výzva, provedli jste vše správně, což znamená, že heslo bylo úspěšně změněno.
Apply the discount by inserting the promo code in the special field at checkout: