Créer ou récupérer un accès administrateur à WordPress avec MySql
C’est un problème assez courant sur les forums d’entraide WordPress : l’administrateur d’un site n’arrive plus à y accéder soit parce qu’il a oublié son mot de passe, soit parce que son site a été piraté, ou suite à une erreur technique. Si le site ne fonctionne plus, il n’y a pas moyen de récupérer le mot de passe d’administration par e-mail, et parfois on n’a plus accès à l’adresse e-mail indiquée lors de la création du site. Pour moi qui interviens régulièrement sur les sites WordPress de tiers, la technique décrite ici est une façon rapide de prendre la main sur l’interface d’administration quand mon client m’a donné l’accès à son serveur. Car il est très simple de se recréer un accès administrateur pour WordPress du moment qu’on a accès aux données dans la base MySql.
Récupérer l’accès à la base
Il y a deux façons courantes d’accéder aux données de la base MySql qui sous-tend un site WordPress hébergé sous LAMP :
- L’accès en ligne de commande via le client mysql
- L’accès via l’interface web phpmyadmin
Dans les deux cas, il faut d’abord localiser la base de données du site WordPress, c’est à dire vérifier où elle est hébergée physiquement, connaître son nom et le compte d’utilisateur qui permet d’y accéder. Toutes ces informations figurent en clair dans le fichier de configuration de WordPress qui est un simple fichier PHP éditable avec un éditeur de texte standard.
Le fichier wp-config.php
Comme un même serveur peut héberger plusieurs sites sous WordPress, il faut localiser le répertoire qui contient l’installation qui nous concerne (sur un serveur GNU Linux Debian, on trouve généralement ces répertoires dans /var/www … sur d’autres configurations GNU / Linux, le site sera peut-être hébergé dans un sous-répertoire de /home ). Une fois le “bon” répertoire trouvé, le fichier de configuration de WordPress est wp-config.php que l’on peut éditer en ligne de commande (avec vi ou more), ou encore rapatrier par FTP pour examiner son contenu.
Les lignes qui nous intéressent sont les suivantes :
// ** Réglages MySQL - Votre hébergeur doit vous fournir ces informations. **
//
/** Le nom de la base de données de WordPress. */
define('DB_NAME', '<nom_bd>');
/** Utilisateur de la base de données MySQL. */
define('DB_USER', '<nom_util>');
/** Mot de passe de la base de données MySQL. */
define('DB_PASSWORD', '<mot_de_passe>');
/** Adresse de l'hébergement MySQL. */
define('DB_HOST', '<serveur>');
[...]
$table_prefix = '<wp_>';
Les cinq informations à noter sont celles que j’ai remplacé par du texte <entre crochets>.
Nous allons en avoir besoin pour nous connecter à la base de WordPress.
Deux cas de figure se présentent pour l’emplacement physique de la base :
- Soit elle se trouve sur le même serveur
- Soit elle est sur un serveur distant
Si elle est sur le même serveur, nous pouvons poursuivre en ligne de commande en nous connectant en MySql. Si elle est sur un serveur séparé, il faut soit accéder à ce serveur également en ligne de commande, soit mettre en oeuvre un accès par un autre système (souvent phpMyAdmin, qui s’utilise dans un navigateur web à partir de l’adresse communiquée par votre hébergeur).
Se connecter à la base
Voici comment se connecter à la base en ligne de commande en utilisant les informations collectées dans le fichier wp-config.php :
mysql -u <nom_util> -p <nom_bd>
(remplacer les expressions entre crochet par les informations trouvées dans wp-config.php). Vous devrez fournir le mot de passe également trouvé dans wp-config.php.
Sélectionner la bonne table
Nous recherchons maintenant la table dans laquelle WordPress stocke les informations sur ses utilisateurs. Par défaut il s’agit de la table wp_users. Cependant, si vous avez indiqué un autre préfixe que le préfixe “wp_” proposé par défaut dans votre fichier de configuration (par exemple si vous avez plusieurs installations de WordPress utilisant la même base de données), il faut chercher la table <wp_>users.
Si vous ne trouvez pas la table correspondantte ou n’êtes pas sur, vous pouvez demander à mysql de lister toutes les tables existantes avec la commande SHOW TABLES;
(tapez vos commandes sur la ligne de commande MySql en les terminant systématiquement par un point-virgule et la touche “entrée”)
Repérez la table qui a le préfixe correspondant à votre installation de WordPress et le suffixe _users.
Ajouter un utilisateur au site
Pour la suite de cette explication, nous considérerons que votre table d’utilisateurs est wp_users (cas le plus courant).
Afin d’ajouter un utilisateur au site, nous allons entrer une nouvelle ligne dans la table wp_users, en mentionnant un identifiant utilisateur et un mot de passe. Choisissez un identifiant d’utilisateur qui n’est pas en usage sur votre site (par exemple admin_provisoire). Nous allons devoir lui générer un mot de passe crypté selon le format MD5.
Pour cela, vous pouvez utiliser un des nombreux services en ligne de calcul de clé MD5, par exemple celui-ci.
L’ajout de l’utilisateur se fait avec cette commande mysql :
INSERT INTO wp_users ( user_login, user_pass ) VALUES ( '<identifiant>', '<mot_de_passe_crypté_md5>' );
A noter qu’il ne faut surtout pas mettre le mot de passe “en clair”, mais bien la chaîne de 32 caractères de la clé MD5 de ce mot de passe.
Nous devons récupérer l’identifiant interne que MySql a attribué à ce nouvel enregistrement :
SELECT LAST_INSERT_ID();
(si cette fonction retourne zéro, faites une recherche avec SELECT id FROM wp_users WHERE user_login=’<identifiant>‘; )
Pour la suite de l’explication, nous appellerons cet identifiant numérique <id>.
Transformer le nouvel utilisateur en administrateur
Si vous essayez maintenant de vous connecter à WordPress avec l’identifiant que nous venons d’ajouter dans la base des utilisateurs, vous constaterez en général que vous êtes connecté comme simple utilisateur du site, ou que vous obtenez une erreur du type “Vous n’avez pas les droits suffisants pour accéder à cette page”.
C’est normal, car pour reprendre la main sur votre site via ce compte d’administrateur, nous devons maintenant lui attribuer les privilèges appropriés.
Voici la ligne de commande, toujours sous mysql :
INSERT INTO wp_usermeta ( user_id, meta_key, meta_value ) VALUES ( <id>, 'wp_capabilities', 'a:1:{s:13:"administrator";b:1;}' );
Le tour est joué ! Nous venons d’ajouter une valeur sérialisée dans la table usermeta qui stocke les données associées aux utilisateurs WordPress (et notamment les privilèges d’administration). Ici également si votre préfixe de table est différent de wp_, vous devrez ajuster la commande pour insérer la valeur dans la bonne table.
Vous pouvez maintenant vous connecter à l’administration de votre site WordPress :
http://adresse.de.votre.site/wp-admin
Utilisez l’identitifant et le mot de passe nouvellement créés ci-dessus, allez modifier l’adresse e-mail et le mot de passe de votre compte d’administration habituel, puis vous pouvez supprimer le compte d’administration provisoire.







le 27 July 2011 à 23:34 h
Bonsoir,
Votre article me concerne justement, je suis sous WordPress via OVH.
Apres avoir essayé de mettre mon site en ligne, pour l’instant je bloque, j’ai bidoullé l’URL dans les réglages géneraux de WordPress.
Mais maintenant je trouve ce message quand j’essaye de me connecter “The requested URL /wp-login.php was not found on this server.” à l’administration.
j’ai bien lu votre article, mais je ne trouve pas le fichier wp-confid.php dans mon FTP.
Si vous avez une solution je suis preneur
Par avance merci
le 28 July 2011 à 0:26 h
@Paul:
L’erreur “The requested URL /wp-login.php was not found on this server” n’est pas liée à un problème de mot de passe perdu, donc ce n’est pas l’objet de mon article. Si vous avez cette erreur c’est soit qu’il manque des fichiers à votre installation WordPress, soit que votre installation n’a pas été faite au “bon endroit”, soit encore que la configuration de votre serveur web ne correspond pas à ce dont vous avez besoin pour faire fonctionner votre WordPress. Si c’est une nouvelle installation, vous devriez sans doute la reprendre à zéro.
le 11 January 2012 à 20:17 h
Merci pour cet article, Je viens de passé une journée sur les forum, c ‘est enfin toi qui m ‘a sauvé. Que Dieu te bénisse!
le 20 January 2012 à 15:22 h
Bonjour,
Novices en dév. web, nous souhaitons faire nous-même notre site “entreprise” via WordPress. Nous avons installé Wp, cependant, les fichiers placés dans le dossier www de Filezilla devaient être incomplets (pages créées sur notre site wp invisibles) Et hier, l’erreur “The requested URL /wp-login.php was not found on this server” est apparue et notre accès est devenu “Forbidden”. Nous avons trouvé votre réponse à ce commentaire intéressant mais ne savons pas comment reprendre tout à zéro. Différents tuto sont assez clairs, mais jamais identiques à notre config (on est sur Mac, codes MySQL de l’hébergeur, Mamp et Filezilla !) Pouvez nous nous mettre sur la voie afin que l’on puisse reprendre le contrôle de notre wp-admin ? En vous remerciant vivement par avance de votre aide, Bien cordialement
le 26 January 2012 à 16:17 h
Salut,
Merci pour ce tuto!
Pour moi, tout se passe bien jusqu’à la dernière étape. L’insertion de la ligne
INSERT INTO wp_usermeta ( user_id, meta_key, meta_value ) VALUES ( , ‘wp_capabilities’, ‘a:1:{s:13:”administrator”;b:1;}’ );
ne change rien… Je n’arrive pas à me connecter en tant qu’administrateur.
Une idée d’où cela pourrait provenir ?
Merci !
le 26 January 2012 à 16:41 h
OK, j’ai trouvé d’où venait le problème !
Je n’avais pas modifié wp_capabilities pour le bon préfixe de table.
En fait, c’est ce tuto qui m’a permis de comprendre l’erreur : http://www.wpbeginner.com/wp-tutorials/how-to-add-an-admin-user-to-the-wordpress-database-via-mysql/
Mais encore merci pour cet article, c’est top !
le 27 January 2012 à 12:18 h
@aurélie. S’il manque des fichiers, il faut commencer par remettre l’intégralité des fichiers de WordPress en place. Le fait d’écraser les fichiers existants n’endommagera pas vos données (contenus du blog), vous pouvez donc le faire sans danger.
le 13 February 2012 à 14:36 h
Bonjour,
C’est en cherchant à résoudre un problème d’accès au tableau de bord d’un blog élaboré avec WordPress que je suis arrivé sur ce tuto que je trouve très bien fait.
Je n’ai pas perdu le MdP ni le login.
Mon souci est le suivant. Je peux accéder à la page d’accueil du site, aller dans les catégories pour y lire des articles, rédiger un formulaire de contact ou d’inscription, bref, pour un visiteur, tout va bien.
Le hic, est lorsque je veux me connecter en administrateur en tapant /wp-admin à la suite de l’URL j’obtiens le message suivant :
Warning: Cannot modify header information – headers already sent by (output started at /homepages/14/d400165205/htdocs/wp-content/themes/Dravis/functions.php:1) in /homepages/14/d400165205/htdocs/wp-includes/pluggable.php on line 866
Auriez-vous une solution ?
J’ai tenté de changer le code des droits d’accès aux fichiers header, functions du thème et pluggable indiqués sur le message d’erreur de 644 à 777, mais rien à faire.
Vous remerciant par avance de votre aide.
Bonne réception.
le 16 February 2012 à 18:40 h
@Gilles :
supprimez la ligne vide tout en haut de votre fichier functions.php (/wp-content/themes/Dravis/functions.php)
Si vous avez des lignes blanches (sauts de ligne) dans vos fichiers PHP, cela perturbe le fonctionnement des plugins qui ont besoin d’envoyer des cookies. Faites la chasse aux lignes vides en haut et en base des scripts, et de façon générale avant <?php et après ?>
Ceci n’est pas un problème spécifique à WordPress.
le 21 February 2012 à 15:47 h
Bonjour,
Désolé de cette réponse tardive, mais entre temps la carte mère de mon PC a lâché, donc le temps que je la trouve et que je la change…
Merci de votre réponse que je mets en application, car même souci avec un autre thème et ça marche maintenant.
J’ai une autre question concernant le slide.
Sur la page d’accueil j’ai un slide où je peux choisir le nombre d’articles slidés (de 1 à 20) et la catégorie (une seule à la fois). Mon problème est que pour 2 catégories rien ne s’affiche, le pavé reste de la couleur que je lui ai attribuée, alors que les autres fonctionnent bien.
Pourriez-vous m’orienter, me dire vers quels fichiers aller “fouiller” ou …? Je suis un peu perdu pour ce clash là !
Si vous souhaiter voir le site concerné : http://www.allaiter-en-sarthe.fr (je le réalise pour ma fille).
Vous remerciant par avance,
le 23 March 2012 à 20:21 h
Bonsoir,
je suis tombée par hasard sur votre site et j’adore.. je n’ai pas perdu mon mdp ni mon loggin, mais je ne parviens plus à lire mes articles ou à visionner mes produits (j’ai intégré wp-ecommerce pour y vendre certains articles, types bougie, lanternes..).
Je peux accéder à la page d’accueil du site, aller dans les catégories et lire les titres des articles, mais je dois à chaque fois me logger.
La question est peut-être bête (je débute)mais je tourne en rond depuis des heures…
Si vous avez une solution, je prends avec toute ma gratitude.
le 26 March 2012 à 16:14 h
@Kazei: dans ce genre de cas, le mieux est toujours de désactiver tous les plugins (si vous n’avez plus accès à l’admin vous pouvez effacer complètement les répertoires de chaque plugin). Puis de le réinstaller un à un pour voir lequel pose problème. Il est bon de savoir qu’un plugin défectueux se désactive “tout seul” quand on efface son répertoire. En général, WordPress retrouve alors son fonctionnement normal.
le 26 March 2012 à 16:43 h
Merci merci merci… j’ai tout désactiver et ça fonctionne à merveille. Je vais pouvoir enfin avancer..
Encore merci !
le 20 July 2012 à 21:59 h
Bonsoir,
J’ai créé en 2008 un blog pour notre petite commune des Pyrénées, je l’ai fait vivre jusqu’à l’été 2010 pour des raisons privée je n’ai pas eu le temps de m’en occuper . Mon ordinateur à été formaté .
Depuis 1 mois je tente de me connecte a wp-admin avec mes identifiants il ne me reconnait plus impossible d’avoir un nouveau mot de passe l’identifiant ne correspond plus à mon e-mail.
J’ai essayé de créer un autre administrateur la j’ai une page blanche.
Avec Filezilla j’ai récupéré mon site j’ai trouvé le fichier config.php j’ai noté comme décrit les identifiants intéressants j’ai essayé ensuite votre manip ma base est inconnu.
Je suis dans l’impasse je n’arrive pas à trouver une solution
Pouvez-vous m’aider ?
Merci pour votre réponse.
Cordialement
le 23 July 2012 à 11:39 h
Cette méthode fonctionne à la perfection, merci beaucoup.
le 22 September 2012 à 21:46 h
Super article que je lis ici, merci pour la clarté mais je n’y arrive pas!!! J’ai un blog sur WordPress, suis seule adm et j’ai fait une erreur de transfert
Merci d’avance
à mon nom d’utilisateur,croyant simplifier, et depuis, impossible d’y retourner…sur mon blog Wp…ça a l’air super facile pour vous, si je vous laisse en mp mes coordonnées, pourriez-vous le faire pour moi, suis prête à vous dédommager
le 2 October 2012 à 0:20 h
Bonsoir,
un grand grand merci à vous, grâce à votre explication, j’ai compris la logique de ce qu’il fallait faire. La gestion de base de donnée chez Strato est différente. Mais j’ai réussi quand même à reprendre la main !
Waouh, je suis très contente
Myrtille
le 21 October 2012 à 20:18 h
Help,
Ayant essayé de posé un bout de code dans « editeur – functions php » j’ai hélas obtenu ce message en me logant.
Parse error: syntax error, unexpected T_STRING in /home/kalitcho/public_html/wp-content/themes/twentyeleven/functions.php on line 615
Au travers de mon FTP, j’ai récupéré le fichier, enlevé le bout de code, mais sans succès. Mon seul propos est de pouvoir me reloguer , et comme je viens juste de télécharger ce wordpress ( donc sans contenu) juste qques plugins c’est pas grave
Puis je au travers de mon Cpanel ou de mon FTP juste supprimer le wpinstallé et ainsi récupérer mon login pour remettre un nouveau wp
Merci de l’aide Cordialement
Gilles
le 27 March 2013 à 23:07 h
Bonjour
“Désolé, vous cherchez quelque chose qui n’est pas ici.”
voila le message indiqué sur ma page admin de mon blog…
Depuis que j´ai mis en place un plugin Better wp security machin truc…
que je maudis! excuser moi mais ca fait 24 h que j´essaie de trouver une solution…j´ai quand meme désactivé mes plugins via phpmyadmin chez ovh…je ne sais plus quoi faire…
Dois-je tout recommencer a zero?
merci…
le 27 March 2013 à 23:12 h
@iza: quand un plugin WordPress vous bloque ou vous plante, il suffit de supprimer complètement le dossier du plugin dans /wp-content/plugins/, ce qui va le désinstaller automatiquement. Une fois que vous avez récupéré la main sur votre admin, vous pouvez supprimer ce que le plugin récalcitrant a laissé derrière lui dans vos contenus.
le 27 March 2013 à 23:25 h
tout d abord je tenais à vous remerciez d´avoir répondu si vite! merci.
peut on le supprimer via phpmyadmin?
le 27 March 2013 à 23:27 h
@iza: en théorie oui, en modifiant la clé d’option qui indique quels plugins sont activés, mais c’est plus compliqué, et plus risqué si vous faites une mauvaise manipulation. Le plus simple est d’y aller en ftp ou en sftp et de supprimer le dossier dans /wp-content/plugins.
le 28 March 2013 à 11:12 h
Bonjour,
alors hier j´ai donc supprimer le plugin en question(better wp security) sur le ftp en allant comme vous me l´avez conseillez sur wp-content/plugin…sans succes…j´ai plus osé vous dérangez à cause du décalage horaire étant installé sur Marrakech!
Alors voila ce que j´ai fait : j´ai renommé wp-config.php en wp-config-old.php et maintenant j´ai ce message sur ma page :
“Il ne semble pas y avoir de fichier wp-config.php. J’en ai besoin pour lancer le processus.”"La manière la plus sûre reste de créer le fichier à la main.”
question toute bête comment faire pour le créer a la main?
merci d´avance.
le 28 March 2013 à 11:50 h
@iza: wp-config.php ne contient aucune information en rapport avec les plugins, c’est uniquement la configuration fixe de la base de données WordPress. C’est donc inutile de le modifier si votre problème vient d’un plugin. Si vous avez complètement supprimé le répertoire du plugin en question en FTP il va se désactiver, c’et la meilleure solution. Si votre problème persiste alors il vient d’ailleurs (autre plugin,…) WordPress ne peut pas fonctionner du tout sans wp-config.php, donc vous ne pourrez rien faire sans le remettre en place. Pour créer wp-config à la main, vous reprenez le fichier d’exemple fourni par l’installation de WordPress, vous mettez les bonnes informations pour se connecter à votre base de données et vous le renommez. Mais wp-config n’a probablement rien à voir avec votre problème.
le 28 March 2013 à 12:01 h
je vais essayer tout ça…et en plus je vais supprimer tout mes plugins.
merci encore