A volte, durante la migrazione o il recupero di un sito WordPress, può essere necessario creare manualmente un utente amministratore direttamente da phpMyAdmin. Questo accade ad esempio quando si perdono le credenziali di accesso, oppure quando si trasferisce il sito e gli utenti non vengono correttamente migrati.
In questa guida ti mostro come creare un utente admin via SQL, con un metodo classico e una versione più avanzata e riutilizzabile, utile se lavori spesso su più installazioni WordPress.
Quando ti serve questo metodo?
- Hai perso l’accesso al pannello di WordPress
- Il sito è stato migrato e l’account admin non funziona più
- Stai lavorando su un sito in locale o in staging e vuoi accedere rapidamente come amministratore
- Stai sviluppando un sito per un cliente e vuoi creare un tuo utente tecnico
Metodo rapido: creare un admin via SQL
Puoi creare un utente direttamente da phpMyAdmin con una semplice query SQL. Assicurati di adattare il prefisso delle tabelle se diverso da wp_
.
INSERT INTO `wp_users` (
`user_login`,
`user_pass`,
`user_nicename`,
`user_email`,
`user_status`,
`display_name`,
`user_registered`
)
VALUES (
'adminuser',
MD5('SecureP@ss123'),
'Admin User',
'admin@example.com',
0,
'Admin User',
NOW()
);
SET @user_id = LAST_INSERT_ID();
INSERT INTO `wp_usermeta` (`user_id`, `meta_key`, `meta_value`) VALUES
(@user_id, 'wp_capabilities', 'a:1:{s:13:"administrator";b:1;}'),
(@user_id, 'wp_user_level', '10');
Attenzione: cambia il prefisso wp_
se il tuo database usa un prefisso diverso (es. wp5d_
).
Metodo riutilizzabile: script SQL dinamico
Se lavori frequentemente con WordPress, può essere utile uno script SQL riutilizzabile in cui modificare solo le variabili iniziali.
-- Modifica questi valori
SET @username = 'adminuser';
SET @password = 'SecureP@ss123';
SET @email = 'admin@example.com';
SET @display = 'Admin User';
SET @prefix = 'wp';
-- Crea nuovo utente
SET @insert_user_sql = CONCAT('
INSERT INTO `', @prefix, '_users` (
`user_login`, `user_pass`, `user_nicename`,
`user_email`, `user_status`, `display_name`, `user_registered`
)
VALUES (
''', @username, ''',
MD5(''', @password, '''),
''', @display, ''',
''', @email, ''',
0,
''', @display, ''',
NOW()
);');
PREPARE stmt FROM @insert_user_sql; EXECUTE stmt; DEALLOCATE PREPARE stmt;
-- Recupera ID utente
SET @user_id = LAST_INSERT_ID();
-- Assegna ruolo di amministratore
SET @insert_meta_sql = CONCAT('
INSERT INTO `', @prefix, '_usermeta` (`user_id`, `meta_key`, `meta_value`) VALUES
(', @user_id, ', ''', @prefix, '_capabilities'', ''a:1:{s:13:"administrator";b:1;}''),
(', @user_id, ', ''', @prefix, '_user_level'', ''10'');');
PREPARE stmt2 FROM @insert_meta_sql; EXECUTE stmt2; DEALLOCATE PREPARE stmt2;
Accesso al sito
Dopo aver eseguito lo script, potrai accedere al sito tramite /wp-login.php
con:
- Username: quello che hai inserito nella variabile
@username
- Password: quella impostata (criptata in MD5, quindi funzionerà al login)
- Ruolo: Amministratore