Kaip iš naujo nustatyti pagrindinį slaptažodį MySQL 8.0


Nelaimingu atveju pamiršus arba pametus MySQL root slaptažodį, jums tikrai reikės būdo kaip nors jį atkurti. Ką turime žinoti, yra tai, kad slaptažodis yra saugomas vartotojų lentelėje. Tai reiškia, kad turime išsiaiškinti būdą, kaip apeiti MySQL autentifikavimą, kad galėtume atnaujinti slaptažodžio įrašą.

Laimei, tai lengva pasiekti, o ši pamoka padės jums atkurti arba iš naujo nustatyti pagrindinį slaptažodį MySQL 8.0 versijoje.

Kaip nurodyta MySQL dokumentacijoje, yra du būdai iš naujo nustatyti pagrindinį MySQL slaptažodį. Apžvelgsime abu.

Iš naujo nustatykite „MySQL“ pagrindinį slaptažodį naudodami –init-file

Vienas iš būdų iš naujo nustatyti pagrindinį slaptažodį yra sukurti vietinį failą ir paleisti MySQL paslaugą naudojant --init-file parinktį, kaip parodyta.

vim /home/user/init-file.txt

Svarbu įsitikinti, kad failą gali skaityti mysql vartotojas. Į tą failą įklijuokite:

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

Aukščiau pateiktoje dalyje pakeiskite „new_password“ į slaptažodį, kurį norite naudoti.

Dabar įsitikinkite, kad MySQL paslauga sustabdyta. Galite atlikti šiuos veiksmus:

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

Tada paleiskite šiuos veiksmus:

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

Tai paleis MySQL paslaugą ir proceso metu vykdys jūsų sukurtą init failą, todėl bus atnaujintas root vartotojo slaptažodis. Nustačius slaptažodį iš naujo, būtinai ištrinkite failą.

Būtinai sustabdykite serverį ir paleiskite jį įprastai po to.

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

Dabar turėtumėte turėti galimybę prisijungti prie MySQL serverio kaip root naudodami naują slaptažodį.

mysql -u root -p

Iš naujo nustatykite „MySQL“ pagrindinį slaptažodį naudodami „skip-grant-tables“.

Antroji galimybė yra paleisti MySQL paslaugą su parinktimi --skip-grant-tables. Tai mažiau saugu, nes tokiu būdu paleidus paslaugą visi vartotojai gali prisijungti be slaptažodžio.

Jei serveris paleidžiamas --skip-grant-tables, --skip-networking parinktis suaktyvinama automatiškai, todėl nuotoliniai ryšiai nebus pasiekiami.

Pirmiausia įsitikinkite, kad MySQL paslauga sustabdyta.

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

Tada paleiskite paslaugą naudodami šią parinktį.

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

Tada galite prisijungti prie mysql serverio tiesiog paleisdami.

mysql

Kadangi paskyros valdymas išjungtas, kai paslauga paleidžiama naudojant --skip-grant-tables parinktį, turėsime iš naujo įkelti dotacijas. Tokiu būdu vėliau galėsime pakeisti slaptažodį:

FLUSH PRIVILEGES;

Dabar galite paleisti šią užklausą, kad atnaujintumėte slaptažodį. Būtinai pakeiskite „new_password“ tikru slaptažodžiu, kurį norite naudoti.

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

Dabar sustabdykite MySQL serverį ir paleiskite jį įprastai.

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

Turėtumėte turėti galimybę prisijungti naudodami naują slaptažodį.

mysql -u root -p

Taip pat galbūt norėsite perskaityti šiuos naudingus su MySQL susijusius straipsnius.

  1. Kaip įdiegti „MySQL 8“ „CentOS“, „RHEL“ ir „Fedora“.
  2. 15 naudingų MySQL našumo derinimo ir optimizavimo patarimų
  3. 12 „MySQL“ saugos praktikos, skirtos „Linux“.
  4. 4 Naudingi komandų eilutės įrankiai MySQL našumui stebėti
  5. MySQL duomenų bazės administravimo komandos
Išvada

Šiame straipsnyje sužinojote, kaip iš naujo nustatyti prarastą „MySQL 8.0“ serverio root slaptažodį. Tikiuosi, kad procesas buvo lengvas.