Trois façons de restaurer l’accès administrateur WordPress sans le tableau de bord : une mu-extension qui crée un compte au chargement de la page (aucun outil de base de données nécessaire), deux requêtes SQL dans phpMyAdmin ou Adminer, ou les mêmes requêtes SQL via la ligne de commande MySQL.
| Votre situation | Meilleure méthode |
|---|---|
| Accès FTP ou gestionnaire de fichiers uniquement — aucun outil de base de données | Option 1 (mu-extension) |
| Accès à la base de données via phpMyAdmin, Adminer ou cPanel | Option 2 (requête SQL) |
| Accès SSH au serveur | Option 3 (CLI MySQL) |
Pourquoi vous auriez besoin d’ajouter un utilisateur admin via MySQL
L’accès administrateur peut disparaître pour plusieurs raisons : une migration échouée qui réécrit des lignes wp_usermeta, un changement de rôle utilisateur raté, une extension qui corrompt les capacités, ou un compte supprimé par accident. Dans les tickets d’assistance WP STAGING, la cause la plus fréquente d’un admin verrouillé est une migration échouée qui a brouillé l’affectation de rôle dans wp_usermeta — voici comment y remédier.
Créer un utilisateur admin directement dans la base de données est sûr et réversible. Rien n’est supprimé — vous ne faites qu’insérer de nouvelles lignes. Le système d’utilisateurs de WordPress lit dans ces tables à chaque connexion, de sorte que le nouveau compte est disponible au moment où les requêtes s’exécutent.
Avez-vous besoin d’un service de restauration de l’utilisateur administrateur WordPress ? Procurez-vous WP Staging Pro et l’un de nos développeurs restaurera l’utilisateur administrateur WordPress pour vous !
Avant de commencer : trouvez le préfixe de table de votre WordPress
Les trois méthodes nécessitent de connaître le préfixe de table de votre base de données WordPress. La valeur par défaut est wp_, mais de nombreux hébergeurs ou outils de migration le changent (par exemple, wpstg0_ ou abc_).
Ouvrez wp-config.php à la racine de votre site et localisez la ligne :
$table_prefix = 'wp_';
Remplacez wp_ dans chaque exemple SQL ci-dessous par la valeur que vous y trouvez. Le préfixe s’applique aussi à la valeur meta_key — si votre préfixe est wpstg0_, la clé de capacités est wpstg0_capabilities, et non wp_capabilities.
Option 1 : Ajouter un admin WordPress avec une mu-extension (aucun accès à la base de données nécessaire)
Contents
- Pourquoi vous auriez besoin d’ajouter un utilisateur admin via MySQL
- Avant de commencer : trouvez le préfixe de table de votre WordPress
- Option 1 : Ajouter un admin WordPress avec une mu-extension (aucun accès à la base de données nécessaire)
- Option 2 : Ajouter un admin WordPress via phpMyAdmin ou Adminer
- Option 3 : Ajouter un admin WordPress en ligne de commande MySQL
- Dépannage : si le nouveau compte ne fonctionne pas
- Après avoir restauré l’accès : renforcez votre connexion WordPress
Si vous avez un accès FTP ou via le Gestionnaire de fichiers cPanel mais aucun outil de base de données, une extension à usage obligatoire (mu-extension) est la voie la plus rapide. Créez un nouveau fichier à wp-content/mu-plugins/add-admin.php et collez ce code :
/*
Plugin Name: Add admin account
Description: This adds an admin account into database
Author: WP STAGING
Version: 1.0
Author URI: https://wp-staging.com
*/
add_action('wp_loaded', function() {
if (isset($_GET['add-admin'])) {
$inserted = wp_insert_user([
'user_pass' => 'password',
'user_login' => 'username',
'user_email' => 'test@example.com',
'role' => 'administrator'
]);
var_dump($inserted);
exit;
}
});Changez user_pass, user_login et user_email aux valeurs souhaitées. Ouvrez votre site à https://example.com/?add-admin pour déclencher la création du compte, puis connectez-vous avec les nouveaux identifiants.
Supprimez le fichier de la mu-extension immédiatement après vous être connecté. Le laisser en place signifie que quiconque connaît l’URL peut créer un compte administrateur sur votre site.
Option 2 : Ajouter un admin WordPress via phpMyAdmin ou Adminer
Ouvrez votre outil de base de données — Adminer ou phpMyAdmin — et accédez au panneau de requêtes SQL. Exécutez les trois requêtes suivantes dans l’ordre, en mettant à jour le préfixe et les identifiants pour correspondre à votre site.
Important : Si vous avez un autre préfixe de table que wp_, vous devrez aussi modifier le préfixe de table !
Étape 1 — Insérer la ligne de l’utilisateur. Substituez le nom d’utilisateur, le mot de passe, le nom affiché et l’adresse e-mail que vous avez choisis.
INSERT INTO `wp_users` (`user_login`, `user_pass`, `user_nicename`, `user_email`,
`user_status`)
VALUES ('wpstaging', MD5('password123'), 'Rene Hermenau', 'support@domain.com', '0');Étape 2 — Attribuer la capacité du rôle d’administrateur.
INSERT INTO `wp_usermeta` (`umeta_id`, `user_id`, `meta_key`, `meta_value`)
VALUES (NULL, (Select max(id) FROM wp_users),'wp_capabilities', 'a:1:{s:13:"administrator";s:1:"1";}');Étape 3 — Définir le niveau d’utilisateur hérité (vérifié par les thèmes et extensions plus anciens).
INSERT INTO `wp_usermeta` (`umeta_id`, `user_id`, `meta_key`, `meta_value`) VALUES (NULL, (Select max(id) FROM wp_users), 'wp_user_level', '10');
Une fois les trois requêtes réussies, accédez à wp-login.php et connectez-vous avec vos nouveaux identifiants.
Si votre préfixe n’est pas wp_, substituez-le à chaque occurrence de wp_users, wp_usermeta, wp_capabilities et wp_user_level. Par exemple, avec le préfixe wpstg0_, les noms de table deviennent wpstg0_users et wpstg0_usermeta et la clé méta de capacités devient wpstg0_capabilities.
Option 3 : Ajouter un admin WordPress en ligne de commande MySQL
Si vous avez un accès SSH, la ligne de commande MySQL produit le même résultat que l’Option 2 sans nécessiter d’outil basé sur un navigateur. Les instructions SQL sont identiques — seule l’interface diffère.
Étape 1 — Se connecter au serveur MySQL.
mysql -u <username> -pRemplacez <username> par votre utilisateur MySQL. Vous serez invité à saisir le mot de passe.
Étape 2 — Sélectionner la base de données WordPress.
USE <database_name>;Remplacez <database_name> par le nom de la base de données issu de wp-config.php (la constante DB_NAME).
Étape 3 — Insérer la nouvelle ligne de l’utilisateur.
INSERT INTO wp_users (user_login, user_pass, user_nicename, user_email, user_status)
VALUES ('<username>', MD5('<password>'), '<display_name>', '<email>', '0');Remplacez <username>, <password>, <display_name> et <email> par vos valeurs. La fonction MD5() chiffre le mot de passe ; utilisez ici un mot de passe fort et changez-le ensuite depuis le tableau de bord WordPress.
Étape 4 — Obtenir l’ID du nouvel utilisateur.
SELECT ID FROM wp_users WHERE user_login = '<username>';Notez l’entier renvoyé — vous en avez besoin à l’étape suivante.
Étape 5 — Attribuer le rôle d’administrateur.
INSERT INTO wp_usermeta (user_id, meta_key, meta_value)
VALUES (<user_id>, 'wp_capabilities', 'a:1:{s:13:"administrator";s:1:"1";}');Remplacez <user_id> par l’ID renvoyé à l’étape 4.
Vous avez maintenant créé un nouvel utilisateur admin WordPress en ligne de commande MySQL. Connectez-vous au tableau de bord avec le nom d’utilisateur et le mot de passe que vous avez choisis.
Dépannage : si le nouveau compte ne fonctionne pas
Si vous ne parvenez toujours pas à vous connecter, ou si le compte apparaît dans Utilisateurs mais affiche le rôle Abonné plutôt qu’Administrateur, parcourez ces trois causes dans l’ordre.
Mauvais préfixe de table
L’erreur la plus fréquente est d’exécuter les requêtes avec wp_ alors que le site utilise un préfixe personnalisé. Réexécutez les requêtes INSERT et UPDATE en substituant le préfixe correct de wp-config.php. La valeur meta_key dépend aussi du préfixe : wp_capabilities devient <préfixe>capabilities, par exemple wpstg0_capabilities.
Ligne wp_usermeta manquante
WordPress lit wp_capabilities dans wp_usermeta pour déterminer le rôle à chaque connexion. Si l’Étape 2 (Option 2) ou l’Étape 5 (Option 3) a échoué silencieusement — par exemple parce que la sous-requête user_id a renvoyé NULL —, le compte existe dans wp_users mais n’a pas de rôle. Réexécutez la requête INSERT INTO wp_usermeta et vérifiez que la ligne apparaît dans la table avant de réessayer de vous connecter.
Conflit d’e-mail en double
Si un compte existant détient déjà l’adresse e-mail que vous avez fournie, l’INSERT réussit mais WordPress peut diriger les tentatives de connexion vers l’ancien compte. Exécutez d’abord SELECT user_email FROM wp_users pour confirmer que l’e-mail n’est pas déjà utilisé, ou choisissez une adresse e-mail de récupération unique.
Après avoir restauré l’accès : renforcez votre connexion WordPress
Une fois de retour dans le tableau de bord, prenez quelques minutes pour éviter un nouveau verrouillage :
- Activez l’authentification à deux facteurs — toute extension 2FA réputée rend bien moins probable qu’une attaque par force brute ou une suppression accidentelle de compte vous laisse verrouillé dehors.
- Auditez les rôles d’utilisateur — allez dans Utilisateurs → Tous les utilisateurs et confirmez qu’il n’y a pas de comptes administrateur inattendus, y compris le compte de récupération que vous venez de créer.
- Mettez à jour l’e-mail du compte de récupération ou supprimez-le une fois que vous avez vérifié que votre compte admin principal fonctionne correctement.
- Supprimez toute mu-extension créée pour cette récupération de
wp-content/mu-plugins/immédiatement après avoir retrouvé l’accès. - Faites une sauvegarde complète avant toute future opération sur la base de données afin d’avoir un point de restauration propre.
J’espère que cet article vous a aidé à comprendre comment créer manuellement un nouvel utilisateur admin dans votre base de données. Veuillez nous contacter si vous avez encore des questions ou si quelque chose n’est pas clair.