Pääsalasanan palauttaminen MySQL 8.0:ssa


Jos unohdat tai kadotat MySQL-pääsalasanasi, tarvitset varmasti tavan palauttaa se jollakin tavalla. Meidän on tiedettävä, että salasana on tallennettu käyttäjätaulukkoon. Tämä tarkoittaa, että meidän on keksittävä tapa ohittaa MySQL-todennus, jotta voimme päivittää salasanatietueen.

Onneksi on helppo saavuttaa, ja tämä opetusohjelma opastaa sinua MySQL 8.0 -version pääkäyttäjän salasanan palautus- tai palautusprosessin läpi.

MySQL-dokumentaation mukaan on kaksi tapaa nollata MySQL-pääsalasana. Tarkistamme molemmat.

Palauta MySQL-pääsalasana käyttämällä -init-tiedostoa

Yksi tavoista nollata pääkäyttäjän salasana on luoda paikallinen tiedosto ja käynnistää MySQL-palvelu käyttämällä --init-file-vaihtoehtoa kuvan mukaisesti.

vim /home/user/init-file.txt

On tärkeää varmistaa, että mysql-käyttäjä voi lukea tiedostoa. Liitä tähän tiedostoon seuraava:

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

Muuta yllä olevassa kohdassa new_password salasana, jota haluat käyttää.

Varmista nyt, että MySQL-palvelu on pysäytetty. Voit tehdä seuraavasti:

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

Suorita sitten seuraava:

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

Tämä käynnistää MySQL-palvelun ja prosessin aikana se suorittaa luomasi init-tiedoston ja siten pääkäyttäjän salasana päivittyy. Muista poistaa tiedosto, kun salasana on nollattu.

Muista pysäyttää palvelin ja käynnistää se sen jälkeen normaalisti.

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

Sinun pitäisi nyt pystyä muodostamaan yhteys MySQL-palvelimeen pääkäyttäjänä uudella salasanalla.

mysql -u root -p

Palauta MySQL-pääsalasana käyttämällä -skip-grant-tables

Toinen vaihtoehto on käynnistää MySQL-palvelu --skip-grant-tables-vaihtoehdolla. Tämä on vähemmän turvallinen, koska kun palvelu käynnistetään tällä tavalla, kaikki käyttäjät voivat muodostaa yhteyden ilman salasanaa.

Jos palvelin käynnistetään --skip-grant-tables, vaihtoehto --skip-networking aktivoituu automaattisesti, joten etäyhteydet eivät ole käytettävissä.

Varmista ensin, että MySQL-palvelu on pysäytetty.

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

Käynnistä sitten palvelu seuraavalla vaihtoehdolla.

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

Sitten voit muodostaa yhteyden mysql-palvelimeen yksinkertaisesti suorittamalla.

mysql

Koska tilinhallinta on poistettu käytöstä, kun palvelu käynnistetään --skip-grant-tables-vaihtoehdolla, meidän on ladattava apurahat uudelleen. Näin voimme vaihtaa salasanan myöhemmin:

FLUSH PRIVILEGES;

Nyt voit päivittää salasanan suorittamalla seuraavan kyselyn. Muista vaihtaa "new_password" oikeaan salasanaan, jota haluat käyttää.

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

Pysäytä nyt MySQL-palvelin ja käynnistä se normaalisti.

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

Sinun pitäisi pystyä muodostamaan yhteys uudella salasanallasi.

mysql -u root -p

Saatat myös haluta lukea nämä hyödylliset seuraavat MySQL-aiheiset artikkelit.

  1. Kuinka asentaa MySQL 8 CentOS-, RHEL- ja Fedoraan
  2. 15 hyödyllistä MySQL-suorituskyvyn viritys- ja optimointivinkkiä
  3. 12 MySQL-suojauskäytäntöä Linuxille
  4. 4 hyödyllistä komentorivityökalua MySQL-suorituskyvyn seurantaan
  5. MySQL-tietokannan hallintakomennot
Johtopäätös

Tässä artikkelissa opit palauttamaan kadonneen pääkäyttäjän salasanan MySQL 8.0 -palvelimelle. Toivottavasti prosessi oli helppo.