Il y a quelques jours j’ai voulu me connecter à un vieux WordPress que j’ai uniquement en local. Gros problème, impossible de me souvenir du mot de passe Administrateur. Et pas d’accès à la boite mail associée au compte pour réinitialiser le mot de passe.
Par chance, j’avais un accès root au serveur qui l’héberge, et j’ai ainsi pu créer un nouveau mot de passe depuis mon terminal.
J’imagine que je ne suis pas le dernier à qui cette situation arrivera. Du coup, voici la procédure que j’ai utilisé.
Bien sur, cela fonctionne pour n’importe quel utilisateur.
Changement du mot de passe
Une fois loggé en SSH au serveur, il faut se connecter à MySQL avec l’utilisateur ayant les droits sur la base, ou le compte root.
1 |
mysql -u root -p |
Nous allons maintenant sélectionner la base correspondant à l’instance de WordPress (ici wordpress), et afficher la table contenant les utilisateurs (ici wp_users).
1 2 3 |
USE wordpress SHOW TABLES; SELECT ID, user_login, user_pass FROM wp_users; |
Nous obtenons ainsi une liste des utilisateurs WordPress inscrits, avec leur ID unique. Nous allons noté l’ID de l’utilisateur pour qui on souhaite réinitialiser le mot de passe.
Puis nous allons mettre à jour le mot de passe (la commande générera directement le hash du mot de passe) et quitter la console MySQL.
1 2 |
UPDATE wp_users SET user_pass = MD5('le_nouveau_password') WHERE ID = (id_user); exit; |
Il est de nouveau possible de se connecter au panneau d’administration de WordPress.
Bien sur cette procédure est également valable via une interface comme phpMyAdmin ou Adminer mais je ne suis pas fan de ces solutions.
Si vous avez d’autres astuces n’hésitez pas à les partager dans les commentaires !