Introduction
Le mot de passe root MySQL permet à l'utilisateur root d'avoir un accès complet à la base de données Mysql,Les gens ont parfois du mal avec les mots de passe car vous en avez besoin de beaucoup de nos jours,Si vous oubliez ou perdez le mot de passe root de votre base de données MySQL, vous pouvez toujours accéder et réinitialisez le mot de passe si vous avez accès au serveur et à un compte utilisateur sudo.
Cet article explique comment réinitialiser le mot de passe root pour les versions plus anciennes et plus récentes de MySQL.
Prérequis
Pour récupérer votre mot de passe root MySQL, vous aurez besoin de :
- Accès au serveur Linux exécutant MySQL avec un utilisateur sudo
Étape 1 :Identification de la version de la base de données
Identifiez la version de la base de données avec la commande ci-dessous, notez la version de la base de données que vous utilisez, car vous les utiliserez plus tard, puisque vous devrez utiliser différentes commandes pour récupérer le mot de passe root.
mysql --version
Vous verrez une sortie comme celle-ci avec MySQL :
MySQL outputmysql Ver 14.14 Distrib 5.7.16, pour Linux (x86_64) utilisant le wrapper EditLine
Etape 2 :Arrêter le serveur Mysql
Avant de changer le mot de passe root, vous devez arrêter le service Mysql
Dans Ubuntu et Debian, exécutez la commande suivante :
sudo service mysql stop
Dans CentOS, Fedora et Red Hat Enterprise Linux, exécutez la commande suivante :
sudo service mysqld stop
Une fois le serveur Mysql arrêté, vous y accéderez manuellement pour réinitialiser le mot de passe root.
Étape 3 :Accéder à la base de données avec les privilèges root
Si vous exécutez MySQL sans charger les informations sur les privilèges utilisateur, cela vous permettra d'accéder à la ligne de commande de la base de données avec les privilèges root sans fournir de mot de passe. Cela vous permettra d'accéder à la base de données sans le savoir.
Démarrez la base de données sans charger les tables de subventions et assurez-vous d'ajouter le symbole Esperluette à la fin.
sudo mysqld_safe --skip-grant-tables &
Vous pouvez maintenant vous connecter à la base de données en tant qu'utilisateur root, qui ne devrait pas demander de mot de passe.
mysql -u root
Vous verrez une invite de shell de base de données à la place.
Tapez 'help;' ou '\h' pour obtenir de l'aide. Tapez '\c' pour effacer l'instruction d'entrée actuelle.
mysql>
Étape 4 :Définir un nouveau mot de passe root Mysql
Pour changer un mot de passe root Mysql, vous pouvez le faire en modifiant la commande utilisateur de mise à jour dans la base de données Mysql
use mysql;
update user set authentication_string=PASSWORD("mynewpassword") where User='root';
flush privileges;
quit
Remarque :Pour MySQL 5.7 et versions ultérieures, le champ de mot de passe dans le champ de la table mysql.user a été supprimé, maintenant le nom du champ est 'authentication_string'. Utilisez la commande de mise à jour ci-dessous au lieu de celle ci-dessus.
update user set authentication_string=PASSWORD("mynewpassword") where User='root';
Remarque :Assurez-vous de remplacer mynewpassword avec le nouveau mot de passe de votre choix.
Une fois la commande exécutée, vous devriez voir la confirmation que la commande a été exécutée avec succès.
Production
Requête OK, 0 lignes affectées (0.00 sec)
Etape 5 :Arrêter et démarrer le service Mysql
Une fois que vous avez mis à jour le mot de passe, vous devez redémarrer le service Mysql
Dans Ubuntu et Debian, exécutez la commande suivante :
sudo service mysql stop sudo service mysql start
Dans CentOS, Fedora et Red Hat Enterprise Linux, exécutez la commande suivante :
sudo service mysqld stop sudo service mysqld start
Etape 6 :Connectez-vous à la base de données
Essayez de vous connecter aux bases de données avec un nouveau mot de passe, entrez votre nouveau mot de passe lorsque vous y êtes invité.
mysql -u root -p
Conclusion
Vous pouvez maintenant avoir un accès administratif à MySQL. Assurez-vous que le nouveau mot de passe root que vous choisissez est fort et sécurisé. N'oubliez pas de ne plus l'oublier :)