Com restablir la contrasenya d'arrel a MySQL 8.0


En un cas desafortunat d'oblidar o perdre la vostra contrasenya d'arrel de MySQL, segurament necessitareu una manera de recuperar-la d'alguna manera. El que hem de saber és que la contrasenya s'emmagatzema a la taula d'usuaris. Això vol dir que hem d'esbrinar una manera de saltar l'autenticació de MySQL, de manera que puguem actualitzar el registre de la contrasenya.

Afortunadament, és fàcil d'aconseguir i aquest tutorial us guiarà pel procés de recuperació o restabliment de la contrasenya d'arrel a la versió 8.0 de MySQL.

Segons la documentació de MySQL, hi ha dues maneres de restablir la contrasenya de MySQL root. Revisarem tots dos.

Restableix la contrasenya d'arrel de MySQL mitjançant –init-file

Una de les maneres de restablir la contrasenya root és crear un fitxer local i després iniciar el servei MySQL utilitzant l'opció --init-file com es mostra.

# vim /home/user/init-file.txt

És important que us assegureu que l'usuari de mysql pot llegir el fitxer. Dins d'aquest fitxer enganxeu el següent:

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

A l'anterior, canvieu new_password amb la contrasenya que voleu utilitzar.

Ara assegureu-vos que el servei MySQL estigui aturat. Podeu fer el següent:

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

A continuació, executeu el següent:

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

Això iniciarà el servei MySQL i durant el procés executarà el fitxer init que heu creat i, per tant, s'actualitzarà la contrasenya de l'usuari root. Assegureu-vos d'eliminar el fitxer un cop s'hagi restablert la contrasenya.

Assegureu-vos d'aturar el servidor i iniciar-lo amb normalitat després d'això.

# 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

Ara hauríeu de poder connectar-vos al servidor MySQL com a root mitjançant la nova contrasenya.

# mysql -u root -p

Restablir la contrasenya d'arrel de MySQL mitjançant –skip-grant-tables

La segona opció que tenim és iniciar el servei MySQL amb l'opció --skip-grant-tables. Això és menys segur, ja que mentre el servei s'inicia d'aquesta manera, tots els usuaris es poden connectar sense contrasenya.

Si s'inicia el servidor --skip-grant-tables, l'opció de --skip-networking s'activa automàticament, de manera que les connexions remotes no estaran disponibles.

Primer assegureu-vos que el servei MySQL estigui aturat.

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

A continuació, inicieu el servei amb la següent opció.

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

A continuació, podeu connectar-vos al servidor mysql simplement executant.

# mysql

Com que la gestió del compte està desactivada quan s'inicia el servei amb l'opció --skip-grant-tables, haurem de tornar a carregar les subvencions. D'aquesta manera podrem canviar la contrasenya més endavant:

# FLUSH PRIVILEGES;

Ara podeu executar la següent consulta per actualitzar la contrasenya. Assegureu-vos de canviar new_password amb la contrasenya real que voleu utilitzar.

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

Ara atureu el servidor MySQL i inicieu-lo normalment.

# 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

Hauríeu de poder connectar-vos amb la vostra nova contrasenya.

# mysql -u root -p

També us agradaria llegir aquests articles útils següents relacionats amb MySQL.

  1. Com instal·lar MySQL 8 a CentOS, RHEL i Fedora
  2. 15 consells útils per a l'optimització i l'optimització del rendiment de MySQL
  3. 12 pràctiques de seguretat de MySQL per a Linux
  4. 4 eines de línia d'ordres útils per supervisar el rendiment de MySQL
  5. Ordres d'administració de bases de dades MySQL

En aquest article heu après com restablir la contrasenya d'arrel perduda per al servidor MySQL 8.0. Espero que el procés hagi estat fàcil.