sql >> Databáze >  >> RDS >> Mysql

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 ho 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 to snadné 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í --init-file možnost, 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é změně „nové_heslo ” s heslem, které chcete použít.

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. Jakmile bude heslo resetováno, nezapomeňte soubor odstranit.

Ujistěte se, že jste zastavili server a poté jej normálně spustili.

# 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 pomocí --skip-grant-tables volba. 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

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

# FLUSH PRIVILEGES;

Nyní můžete spustit následující dotaz k aktualizaci hesla. Nezapomeňte změnit „new_password“ na skutečné heslo, které chcete použít.

# 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 tyto užitečné následující č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 postupů 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 tento proces byl snadný.


  1. Zachovat časové pásmo v typu Timestamptz PostgreSQL

  2. Proč vždy preferujeme použití parametrů v příkazech SQL?

  3. Jak uložit podpis v MySQL

  4. PostgreSQL, kde je vše v poli