Tre modi per ripristinare l’accesso amministratore di WordPress senza la bacheca: un mu-plugin che crea un account al caricamento della pagina (nessuno strumento per database necessario), due query SQL in phpMyAdmin o Adminer, oppure le stesse query SQL tramite la riga di comando MySQL.
| La tua situazione | Metodo migliore |
|---|---|
| Solo accesso FTP o gestore file — nessuno strumento per database | Opzione 1 (mu-plugin) |
| Accesso al database tramite phpMyAdmin, Adminer o cPanel | Opzione 2 (query SQL) |
| Accesso SSH al server | Opzione 3 (CLI MySQL) |
Perché avresti bisogno di aggiungere un utente amministratore tramite MySQL
L’accesso amministratore può sparire per diversi motivi: una migrazione fallita che riscrive le righe wp_usermeta, una modifica del ruolo utente andata male, un plugin che corrompe le capacità o un account eliminato per errore. Nei ticket di supporto WP STAGING, la causa più comune di un amministratore bloccato fuori è una migrazione fallita che ha scombinato l’assegnazione del ruolo in wp_usermeta — ecco come risolverla.
Creare un utente amministratore direttamente nel database è sicuro e reversibile. Non viene eliminato nulla — stai solo inserendo nuove righe. Il sistema utenti di WordPress legge da queste tabelle a ogni accesso, quindi il nuovo account è disponibile nel momento in cui le query vengono eseguite.
Hai bisogno di un servizio di ripristino dell’utente amministratore di WordPress? Scarica WP Staging Pro e uno dei nostri sviluppatori ripristinerà l’utente amministratore di WordPress per te!
Prima di iniziare: trova il prefisso delle tabelle del tuo WordPress
Tutti e tre i metodi richiedono di conoscere il prefisso delle tabelle del tuo database WordPress. Il valore predefinito è wp_, ma molti host o strumenti di migrazione lo cambiano (per esempio, wpstg0_ o abc_).
Apri wp-config.php nella radice del tuo sito e individua la riga:
$table_prefix = 'wp_';
Sostituisci wp_ in ogni esempio SQL qui sotto con il valore che trovi lì. Il prefisso si applica anche al valore meta_key — se il tuo prefisso è wpstg0_, la chiave delle capacità è wpstg0_capabilities, non wp_capabilities.
Opzione 1: Aggiungere un amministratore WordPress con un mu-plugin (nessun accesso al database necessario)
Contents
- Perché avresti bisogno di aggiungere un utente amministratore tramite MySQL
- Prima di iniziare: trova il prefisso delle tabelle del tuo WordPress
- Opzione 1: Aggiungere un amministratore WordPress con un mu-plugin (nessun accesso al database necessario)
- Opzione 2: Aggiungere un amministratore WordPress tramite phpMyAdmin o Adminer
- Opzione 3: Aggiungere un amministratore WordPress sulla riga di comando MySQL
- Risoluzione dei problemi: se il nuovo account non funziona
- Dopo aver ripristinato l’accesso: rafforza il tuo login WordPress
Se hai accesso FTP o tramite il Gestore file di cPanel ma nessuno strumento per database, un plugin a uso obbligatorio (mu-plugin) è la via più rapida. Crea un nuovo file in wp-content/mu-plugins/add-admin.php e incolla questo codice:
/*
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;
}
});Cambia user_pass, user_login e user_email con i valori desiderati. Apri il tuo sito su https://example.com/?add-admin per attivare la creazione dell’account, poi accedi con le nuove credenziali.
Elimina il file del mu-plugin immediatamente dopo aver effettuato l’accesso. Lasciarlo al suo posto significa che chiunque conosca l’URL può creare un account amministratore sul tuo sito.
Opzione 2: Aggiungere un amministratore WordPress tramite phpMyAdmin o Adminer
Apri il tuo strumento per database — Adminer o phpMyAdmin — e vai al pannello delle query SQL. Esegui le seguenti tre query in ordine, aggiornando il prefisso e le credenziali per adattarli al tuo sito.
Importante: Se hai un prefisso di tabella diverso da wp_, dovrai modificare anche il prefisso di tabella!
Passaggio 1 — Inserire la riga dell’utente. Sostituisci il nome utente, la password, il nome visualizzato e l’indirizzo email scelti.
INSERT INTO `wp_users` (`user_login`, `user_pass`, `user_nicename`, `user_email`,
`user_status`)
VALUES ('wpstaging', MD5('password123'), 'Rene Hermenau', 'support@domain.com', '0');Passaggio 2 — Assegnare la capacità del ruolo di amministratore.
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";}');Passaggio 3 — Impostare il livello utente legacy (controllato da temi e plugin più vecchi).
INSERT INTO `wp_usermeta` (`umeta_id`, `user_id`, `meta_key`, `meta_value`) VALUES (NULL, (Select max(id) FROM wp_users), 'wp_user_level', '10');
Dopo che tutte e tre le query hanno avuto successo, vai a wp-login.php e accedi con le tue nuove credenziali.
Se il tuo prefisso non è wp_, sostituiscilo in ogni occorrenza di wp_users, wp_usermeta, wp_capabilities e wp_user_level. Per esempio, con il prefisso wpstg0_, i nomi delle tabelle diventano wpstg0_users e wpstg0_usermeta e la chiave meta delle capacità diventa wpstg0_capabilities.
Opzione 3: Aggiungere un amministratore WordPress sulla riga di comando MySQL
Se hai accesso SSH, la riga di comando MySQL produce lo stesso risultato dell’Opzione 2 senza bisogno di uno strumento basato su browser. Le istruzioni SQL sono identiche — cambia solo l’interfaccia.
Passaggio 1 — Connettersi al server MySQL.
mysql -u <username> -pSostituisci <username> con il tuo utente MySQL. Ti verrà chiesto di inserire la password.
Passaggio 2 — Selezionare il database WordPress.
USE <database_name>;Sostituisci <database_name> con il nome del database da wp-config.php (la costante DB_NAME).
Passaggio 3 — Inserire la nuova riga dell’utente.
INSERT INTO wp_users (user_login, user_pass, user_nicename, user_email, user_status)
VALUES ('<username>', MD5('<password>'), '<display_name>', '<email>', '0');Sostituisci <username>, <password>, <display_name> e <email> con i tuoi valori. La funzione MD5() cifra la password; usa qui una password forte e cambiala in seguito dalla bacheca di WordPress.
Passaggio 4 — Ottenere l’ID del nuovo utente.
SELECT ID FROM wp_users WHERE user_login = '<username>';Annota l’intero restituito — ti serve nel passaggio successivo.
Passaggio 5 — Assegnare il ruolo di amministratore.
INSERT INTO wp_usermeta (user_id, meta_key, meta_value)
VALUES (<user_id>, 'wp_capabilities', 'a:1:{s:13:"administrator";s:1:"1";}');Sostituisci <user_id> con l’ID restituito nel Passaggio 4.
Ora hai creato un nuovo utente amministratore WordPress sulla riga di comando MySQL. Accedi alla bacheca con il nome utente e la password che hai scelto.
Risoluzione dei problemi: se il nuovo account non funziona
Se ancora non riesci ad accedere, o l’account compare in Utenti ma mostra il ruolo come Sottoscrittore anziché Amministratore, lavora su queste tre cause in ordine.
Prefisso di tabella errato
L’errore più comune è eseguire le query con wp_ quando il sito usa un prefisso personalizzato. Riesegui le query INSERT e UPDATE sostituendo il prefisso corretto da wp-config.php. Anche il valore meta_key dipende dal prefisso: wp_capabilities diventa <prefisso>capabilities, per esempio wpstg0_capabilities.
Riga wp_usermeta mancante
WordPress legge wp_capabilities da wp_usermeta per determinare il ruolo a ogni accesso. Se il Passaggio 2 (Opzione 2) o il Passaggio 5 (Opzione 3) è fallito silenziosamente — per esempio perché la sottoquery user_id ha restituito NULL —, l’account esiste in wp_users ma non ha un ruolo. Riesegui la query INSERT INTO wp_usermeta e verifica che la riga compaia nella tabella prima di provare ad accedere di nuovo.
Conflitto di email duplicata
Se un account esistente possiede già l’indirizzo email che hai fornito, l’INSERT riesce ma WordPress potrebbe indirizzare i tentativi di accesso all’account più vecchio. Esegui prima SELECT user_email FROM wp_users per confermare che l’email non è già in uso, oppure scegli un indirizzo email di recupero univoco.
Dopo aver ripristinato l’accesso: rafforza il tuo login WordPress
Una volta tornato nella bacheca, prenditi qualche minuto per prevenire un nuovo blocco:
- Attiva l’autenticazione a due fattori — qualsiasi plugin 2FA affidabile rende molto meno probabile che un attacco brute-force o un’eliminazione accidentale dell’account ti lascino bloccato fuori.
- Verifica i ruoli utente — vai su Utenti → Tutti gli utenti e conferma che non ci siano account amministratore inaspettati, incluso l’account di recupero che hai appena creato.
- Aggiorna l’email dell’account di recupero oppure eliminalo una volta verificato che il tuo account amministratore principale funziona correttamente.
- Rimuovi qualsiasi mu-plugin creato per questo recupero da
wp-content/mu-plugins/immediatamente dopo aver riottenuto l’accesso. - Esegui un backup completo prima di qualsiasi futura operazione sul database, così da avere un punto di rollback pulito.
Spero che questo articolo ti abbia aiutato a capire come creare manualmente un nuovo utente amministratore nel tuo database. Per favore mettiti in contatto con noi se hai ancora domande o se qualcosa non è chiaro.