Vyhledávání na webu

Jak resetovat heslo root v MySQL 8.0


V nešťastném případě zapomenutí nebo ztráty kořenového hesla MySQL budete jistě potřebovat způsob, jak jej nějak obnovit. Potřebujeme vědět, že heslo je uloženo v tabulce uživatelů. To znamená, že musíme vymyslet způsob, jak obejít autentizaci MySQL, abychom mohli aktualizovat záznam hesla.

Naštěstí je snadné dosáhnout a tento tutoriál vás provede procesem obnovení nebo resetování hesla root ve verzi MySQL 8.0.

Podle dokumentace MySQL existují dva způsoby, jak resetovat kořenové heslo MySQL. Obojí zkontrolujeme.

Resetujte heslo kořene MySQL pomocí –init-file

Jedním ze způsobů, jak resetovat heslo uživatele root, je vytvořit místní soubor a poté spustit službu MySQL pomocí volby --init-file, jak je znázorněno.

vim /home/user/init-file.txt

Je důležité, abyste se ujistili, že soubor je čitelný pro uživatele mysql. Do tohoto souboru vložte následující:

ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password';

Ve výše uvedeném změňte „nové_heslo“ na heslo, které chcete používat.

Nyní se ujistěte, že je služba MySQL zastavena. Můžete provést následující:

systemctl stop mysqld.service     # for distros using systemd 
/etc/init.d/mysqld stop           # for distros using init

Poté spusťte následující:

mysqld --user=mysql --init-file=/home/user/init-file.txt --console

Tím se spustí služba MySQL a během procesu se spustí init-soubor, který jste vytvořili, a tím se aktualizuje heslo pro uživatele root. Po resetování hesla soubor smažte.

Zastavte server a poté jej normálně spusťte.

systemctl stop mysqld.service        # for distros using systemd 
systemctl restart mysqld.service     # for distros using systemd 

/etc/init.d/mysqld stop              # for distros using init
/etc/init.d/mysqld restart           # for distros using init

Nyní byste měli být schopni se připojit k serveru MySQL jako root pomocí nového hesla.

mysql -u root -p

Resetujte heslo kořene MySQL pomocí –skip-grant-tables

Druhá možnost, kterou máme, je spustit službu MySQL s volbou --skip-grant-tables. To je méně bezpečné, protože když je služba spuštěna tímto způsobem, všichni uživatelé se mohou připojit bez hesla.

Pokud je server spuštěn --skip-grant-tables, volba pro --skip-networking se automaticky aktivuje, takže vzdálená připojení nebudou dostupná.

Nejprve se ujistěte, že je zastavena služba MySQL.

systemctl stop mysqld.service     # for distros using systemd 
/etc/init.d/mysqld stop           # for distros using init

Poté spusťte službu s následující možností.

mysqld --skip-grant-tables --user=mysql &

Poté se můžete připojit k serveru mysql pouhým spuštěním.

mysql

Vzhledem k tomu, že při spuštění služby pomocí volby --skip-grant-tables je správa účtu deaktivována, budeme muset granty znovu načíst. Tímto způsobem budeme moci později změnit heslo:

FLUSH PRIVILEGES;

Nyní můžete spustit následující dotaz a aktualizovat heslo. Nezapomeňte změnit „nové_heslo“ na skutečné heslo, které chcete používat.

ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_passowrd';

Nyní zastavte server MySQL a spusťte jej normálně.

systemctl stop mysqld.service        # for distros using systemd 
systemctl restart mysqld.service     # for distros using systemd 

/etc/init.d/mysqld stop              # for distros using init
/etc/init.d/mysqld restart           # for distros using init

Měli byste být schopni se připojit pomocí svého nového hesla.

mysql -u root -p

Možná byste si také rádi přečetli následující užitečné články související s MySQL.

  1. Jak nainstalovat MySQL 8 v CentOS, RHEL a Fedora
  2. 15 užitečných tipů pro ladění a optimalizaci výkonu MySQL
  3. 12 Postupy zabezpečení MySQL pro Linux
  4. 4 Užitečné nástroje příkazového řádku pro sledování výkonu MySQL
  5. Příkazy pro správu databáze MySQL
Závěr

V tomto článku jste se naučili, jak obnovit ztracené heslo root pro server MySQL 8.0. Doufám, že proces byl snadný.