Mysql
 sql >> Base de données >  >> RDS >> Mysql

Comment réinitialiser le mot de passe root dans MySQL 8.0

Dans le cas malheureux d'oubli ou de perte de votre mot de passe root MySQL, vous aurez sûrement besoin d'un moyen de le récupérer d'une manière ou d'une autre. Ce que nous devons savoir, c'est que le mot de passe est stocké dans la table des utilisateurs. Cela signifie que nous devons trouver un moyen de contourner l'authentification MySQL, afin de pouvoir mettre à jour l'enregistrement du mot de passe.

Heureusement, il existe une solution facile à réaliser et ce didacticiel vous guidera tout au long du processus de récupération ou de réinitialisation du mot de passe root dans la version MySQL 8.0.

Selon la documentation MySQL, il existe deux façons de réinitialiser le mot de passe root MySQL. Nous examinerons les deux.

Réinitialiser le mot de passe racine MySQL à l'aide de –init-file

L'un des moyens de réinitialiser le mot de passe root consiste à créer un fichier local, puis à démarrer le service MySQL à l'aide de --init-file comme indiqué.

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

Il est important que vous vous assuriez que le fichier est lisible par l'utilisateur mysql. Dans ce fichier, collez ce qui suit :

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

Dans le changement ci-dessus "new_password ” avec le mot de passe que vous souhaitez utiliser.

Assurez-vous maintenant que le service MySQL est arrêté. Vous pouvez effectuer les actions suivantes :

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

Exécutez ensuite ce qui suit :

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

Cela démarrera le service MySQL et pendant le processus, il exécutera le fichier init que vous avez créé et ainsi le mot de passe de l'utilisateur root sera mis à jour. Assurez-vous de supprimer le fichier une fois le mot de passe réinitialisé.

Assurez-vous d'arrêter le serveur et de le démarrer normalement après cela.

# 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

Vous devriez maintenant pouvoir vous connecter au serveur MySQL en tant que root en utilisant le nouveau mot de passe.

# mysql -u root -p

Réinitialiser le mot de passe racine MySQL à l'aide de –skip-grant-tables

La deuxième option que nous avons est de démarrer le service MySQL avec le --skip-grant-tables option. Ceci est moins sécurisé car lorsque le service est démarré de cette façon, tous les utilisateurs peuvent se connecter sans mot de passe.

Si le serveur est démarré --skip-grant-tables , l'option pour --skip-networking est automatiquement activé afin que les connexions à distance ne soient pas disponibles.

Assurez-vous d'abord que le service MySQL est arrêté.

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

Ensuite, démarrez le service avec l'option suivante.

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

Ensuite, vous pouvez vous connecter au serveur mysql en exécutant simplement.

# mysql

Étant donné que la gestion de compte est désactivée lorsque le service est démarré avec --skip-grant-tables option, nous devrons recharger les subventions. De cette façon, nous pourrons changer le mot de passe plus tard :

# FLUSH PRIVILEGES;

Vous pouvez maintenant exécuter la requête suivante pour mettre à jour le mot de passe. Assurez-vous de remplacer "new_password" par le mot de passe réel que vous souhaitez utiliser.

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

Maintenant, arrêtez le serveur MySQL et démarrez-le normalement.

# 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

Vous devriez pouvoir vous connecter avec votre nouveau mot de passe.

# mysql -u root -p

Vous aimerez peut-être également lire ces articles utiles liés à MySQL.

  1. Comment installer MySQL 8 dans CentOS, RHEL et Fedora
  2. 15 astuces utiles pour régler et optimiser les performances de MySQL
  3. 12 pratiques de sécurité MySQL pour Linux
  4. 4 outils de ligne de commande utiles pour surveiller les performances de MySQL
  5. Commandes d'administration de la base de données MySQL
Conclusion

Dans cet article, vous avez appris comment réinitialiser le mot de passe root perdu pour le serveur MySQL 8.0. J'espère que le processus a été facile.