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.
- Comment installer MySQL 8 dans CentOS, RHEL et Fedora
- 15 astuces utiles pour régler et optimiser les performances de MySQL
- 12 pratiques de sécurité MySQL pour Linux
- 4 outils de ligne de commande utiles pour surveiller les performances de MySQL
- 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.