MySQL : corriger l'erreur 'Access denied for user 'root'@'localhost'

MySQL : corriger l'erreur 'Access denied for user 'root'@'localhost' Si vous avez oublié ou perdu le mot de passe de l'utilisateur "root" d'une base de données MySQL, il existe plusieurs solutions pour le reconfigurer.

Lorsque vous utilisez une base de données Mysql, il est essentiel de conserver le mot de passe de l'utilisateur "root". Cet utilisateur a tous les droits sur toutes les bases de données et peut administrer les autres utilisateurs configurés dans la base. Si vous avez oublié ou perdu le mot de passe, il existe heureusement des solutions pour le reconfigurer.

La première solution a l'avantage d'être utilisable sur n'importe quel système d'exploitation. Attention, votre serveur de bases de données sera vulnérable aux intrusions durant le processus.

Ouvrez le fichier de configuration du serveur Mysql. Sous Windows, il se nomme "my.ini" alors que sous les systèmes Linux, il se nomme "my.cnf" et est situé dans le dossier "/etc". Ajoutez ensuite la directive "skip-grant-tables" dans la section "[mysqld]" du fichier. Cette directive va indiquer à Mysql de démarrer en ignorant les directives de gestion des utilisateurs. Redémarrez ensuite le serveur Mysql et connectez-vous avec votre terminal ou votre invite de commande en utilisant la commande "mysql -u root -p". Vous serez connecté sans que Mysql ne vous demande de mot de passe. Utilisez ensuite la commande "FLUSH PRIVILEGES". Cette commande va indiquer à Mysql de charger les tables contenant les droits des utilisateurs et leurs accès. Vous pouvez alors changer le mot de passe de l'utilisateur "root" avec la commande suivante :

ALTER USER 'root'@'adresse_ip_du_serveur' IDENTIFIED BY 'nouveau_mot_de_passe';

Ouvrez de nouveau le fichier de configuration de Mysql et retirez ou commentez la directive "skip-grant-tables". Redémarrez le serveur et vous pourrez de nouveau vous connecter en tant qu'utilisateur "root" avec la commande "mysql -u root -p" et votre mot de passe.

Si vous travaillez avec un système d'exploitation Linux, il est possible d'utiliser une procédure plus rapide. Vous devez pour cela être administrateur de la machine sur laquelle est installé le serveur de bases de données. Utilisez la commande "sudo" qui permet d'exécuter la commande suivante en tant qu'administrateur. Si vous tapez "sudo mysql", alors vous serez directement connecté à la base de données sans demande de mot de passe. Il ne vous reste plus qu'à changer le mot de passe de l'utilisateur "root" avec la commande suivante :

ALTER USER 'root'@'adresse_ip_du_serveur' IDENTIFIED BY 'nouveau_mot_de_passe';

Tapez ensuite la commande "exit" ou utilisez le raccourci clavier CTRL + D pour quitter l'interface de commande Mysql.

SQL