Três formas de restaurar o acesso de administrador do WordPress sem o painel: um mu-plugin que cria uma conta ao carregar a página (nenhuma ferramenta de banco de dados necessária), duas consultas SQL no phpMyAdmin ou Adminer, ou as mesmas consultas SQL pela linha de comando do MySQL.
| A sua situação | Melhor método |
|---|---|
| Apenas acesso por FTP ou gerenciador de arquivos — sem ferramenta de banco de dados | Opção 1 (mu-plugin) |
| Acesso ao banco de dados por phpMyAdmin, Adminer ou cPanel | Opção 2 (consulta SQL) |
| Acesso SSH ao servidor | Opção 3 (CLI do MySQL) |
Por que você precisaria adicionar um usuário administrador via MySQL
O acesso de administrador pode desaparecer por vários motivos: uma migração malsucedida que reescreve linhas de wp_usermeta, uma mudança de função de usuário mal feita, um plugin que corrompe as capacidades ou uma conta excluída por acidente. Nos tickets de suporte da WP STAGING, a causa mais comum de um administrador bloqueado é uma migração malsucedida que embaralhou a atribuição de função em wp_usermeta — veja como corrigir isso.
Criar um usuário administrador diretamente no banco de dados é seguro e reversível. Nada é excluído — você está apenas inserindo novas linhas. O sistema de usuários do WordPress lê dessas tabelas a cada login, então a nova conta fica disponível no momento em que as consultas são executadas.
Você precisa de um serviço de restauração do usuário administrador do WordPress? Obtenha o WP Staging Pro e um dos nossos desenvolvedores restaurará o usuário administrador do WordPress para você!
Antes de começar: encontre o prefixo de tabela do seu WordPress
Os três métodos exigem que você saiba o prefixo de tabela do seu banco de dados do WordPress. O padrão é wp_, mas muitos hosts ou ferramentas de migração o alteram (por exemplo, wpstg0_ ou abc_).
Abra o wp-config.php na raiz do seu site e localize a linha:
$table_prefix = 'wp_';
Substitua wp_ em cada exemplo SQL abaixo pelo valor que você encontrar ali. O prefixo também se aplica ao valor meta_key — se o seu prefixo for wpstg0_, a chave de capacidades é wpstg0_capabilities, não wp_capabilities.
Opção 1: Adicionar um administrador do WordPress com um mu-plugin (sem necessidade de acesso ao banco de dados)
Contents
- Por que você precisaria adicionar um usuário administrador via MySQL
- Antes de começar: encontre o prefixo de tabela do seu WordPress
- Opção 1: Adicionar um administrador do WordPress com um mu-plugin (sem necessidade de acesso ao banco de dados)
- Opção 2: Adicionar um administrador do WordPress via phpMyAdmin ou Adminer
- Opção 3: Adicionar um administrador do WordPress na linha de comando do MySQL
- Solução de problemas: se a nova conta não funcionar
- Depois de restaurar o acesso: reforce o seu login do WordPress
Se você tem acesso por FTP ou pelo Gerenciador de Arquivos do cPanel, mas nenhuma ferramenta de banco de dados, um plugin de uso obrigatório (mu-plugin) é o caminho mais rápido. Crie um novo arquivo em wp-content/mu-plugins/add-admin.php e cole este código:
/*
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;
}
});Altere user_pass, user_login e user_email para os valores desejados. Abra o seu site em https://example.com/?add-admin para disparar a criação da conta e depois faça login com as novas credenciais.
Exclua o arquivo do mu-plugin imediatamente após fazer login. Deixá-lo no lugar significa que qualquer pessoa que saiba a URL pode criar uma conta de administrador no seu site.
Opção 2: Adicionar um administrador do WordPress via phpMyAdmin ou Adminer
Abra a sua ferramenta de banco de dados — Adminer ou phpMyAdmin — e navegue até o painel de consultas SQL. Execute as três consultas a seguir em ordem, atualizando o prefixo e as credenciais para corresponder ao seu site.
Importante: Se você tem outro prefixo de tabela em vez de wp_, também precisará modificar o prefixo de tabela!
Passo 1 — Inserir a linha do usuário. Substitua o nome de usuário, a senha, o nome de exibição e o endereço de e-mail que você escolheu.
INSERT INTO `wp_users` (`user_login`, `user_pass`, `user_nicename`, `user_email`,
`user_status`)
VALUES ('wpstaging', MD5('password123'), 'Rene Hermenau', 'support@domain.com', '0');Passo 2 — Atribuir a capacidade da função de administrador.
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";}');Passo 3 — Definir o nível de usuário legado (verificado por temas e plugins mais antigos).
INSERT INTO `wp_usermeta` (`umeta_id`, `user_id`, `meta_key`, `meta_value`) VALUES (NULL, (Select max(id) FROM wp_users), 'wp_user_level', '10');
Depois que as três consultas forem bem-sucedidas, navegue até wp-login.php e faça login com as suas novas credenciais.
Se o seu prefixo não for wp_, substitua-o em cada ocorrência de wp_users, wp_usermeta, wp_capabilities e wp_user_level. Por exemplo, com o prefixo wpstg0_, os nomes das tabelas passam a ser wpstg0_users e wpstg0_usermeta, e a chave meta de capacidades passa a ser wpstg0_capabilities.
Opção 3: Adicionar um administrador do WordPress na linha de comando do MySQL
Se você tem acesso SSH, a linha de comando do MySQL produz o mesmo resultado da Opção 2 sem precisar de uma ferramenta baseada em navegador. As instruções SQL são idênticas — apenas a interface difere.
Passo 1 — Conectar-se ao servidor MySQL.
mysql -u <username> -pSubstitua <username> pelo seu usuário do MySQL. Você será solicitado a inserir a senha.
Passo 2 — Selecionar o banco de dados do WordPress.
USE <database_name>;Substitua <database_name> pelo nome do banco de dados de wp-config.php (a constante DB_NAME).
Passo 3 — Inserir a nova linha do usuário.
INSERT INTO wp_users (user_login, user_pass, user_nicename, user_email, user_status)
VALUES ('<username>', MD5('<password>'), '<display_name>', '<email>', '0');Substitua <username>, <password>, <display_name> e <email> pelos seus valores. A função MD5() criptografa a senha; use uma senha forte aqui e altere-a pelo painel do WordPress depois.
Passo 4 — Obter o ID do novo usuário.
SELECT ID FROM wp_users WHERE user_login = '<username>';Anote o inteiro retornado — você precisa dele no próximo passo.
Passo 5 — Atribuir a função de administrador.
INSERT INTO wp_usermeta (user_id, meta_key, meta_value)
VALUES (<user_id>, 'wp_capabilities', 'a:1:{s:13:"administrator";s:1:"1";}');Substitua <user_id> pelo ID retornado no Passo 4.
Agora você criou um novo usuário administrador do WordPress na linha de comando do MySQL. Faça login no painel com o nome de usuário e a senha que você escolheu.
Solução de problemas: se a nova conta não funcionar
Se você ainda não conseguir fazer login, ou a conta aparecer em Usuários mas mostrar a função como Assinante em vez de Administrador, percorra estas três causas em ordem.
Prefixo de tabela errado
O erro mais comum é executar as consultas com wp_ quando o site usa um prefixo personalizado. Reexecute as consultas INSERT e UPDATE substituindo o prefixo correto de wp-config.php. O valor meta_key também depende do prefixo: wp_capabilities passa a ser <prefixo>capabilities, por exemplo wpstg0_capabilities.
Linha wp_usermeta ausente
O WordPress lê wp_capabilities de wp_usermeta para determinar a função a cada login. Se o Passo 2 (Opção 2) ou o Passo 5 (Opção 3) falhou silenciosamente — por exemplo porque a subconsulta user_id retornou NULL —, a conta existe em wp_users mas não tem função. Reexecute a consulta INSERT INTO wp_usermeta e verifique se a linha aparece na tabela antes de tentar fazer login novamente.
Conflito de e-mail duplicado
Se uma conta existente já possui o endereço de e-mail que você forneceu, o INSERT é bem-sucedido, mas o WordPress pode direcionar as tentativas de login para a conta mais antiga. Execute primeiro SELECT user_email FROM wp_users para confirmar que o e-mail ainda não está em uso, ou escolha um endereço de e-mail de recuperação único.
Depois de restaurar o acesso: reforce o seu login do WordPress
Quando você voltar ao painel, dedique alguns minutos para evitar um novo bloqueio:
- Ative a autenticação de dois fatores — qualquer plugin de 2FA confiável torna muito menos provável que um ataque de força bruta ou uma exclusão acidental de conta deixem você bloqueado para fora.
- Audite as funções de usuário — vá em Usuários → Todos os usuários e confirme que não há contas de administrador inesperadas, incluindo a conta de recuperação que você acabou de criar.
- Atualize o e-mail da conta de recuperação ou exclua-a assim que verificar que a sua conta de administrador principal está funcionando corretamente.
- Remova qualquer mu-plugin criado para esta recuperação de
wp-content/mu-plugins/imediatamente após recuperar o acesso. - Faça um backup completo antes de qualquer cirurgia futura no banco de dados para ter um ponto de rollback limpo.
Espero que este artigo tenha ajudado você a entender como criar manualmente um novo usuário administrador no seu banco de dados. Por favor, entre em contato conosco se você ainda tiver dúvidas ou se algo não estiver claro.