Crear un usuario administrador con MySQL en WordPress

Tres formas de restaurar el acceso de administrador de WordPress sin el escritorio: un mu-plugin que crea una cuenta al cargar la página (no se necesita herramienta de base de datos), dos consultas SQL en phpMyAdmin o Adminer, o las mismas consultas SQL mediante la línea de comandos de MySQL.

Tu situación Mejor método
Solo acceso por FTP o administrador de archivos — sin herramienta de base de datos Opción 1 (mu-plugin)
Acceso a la base de datos por phpMyAdmin, Adminer o cPanel Opción 2 (consulta SQL)
Acceso SSH al servidor Opción 3 (CLI de MySQL)

Por qué necesitarías añadir un usuario administrador vía MySQL

El acceso de administrador puede desaparecer por varias razones: una migración fallida que reescribe filas de wp_usermeta, un cambio de rol de usuario mal hecho, un plugin que corrompe las capacidades o una cuenta eliminada por accidente. En los tickets de soporte de WP STAGING, la causa más común de un administrador bloqueado es una migración fallida que desordenó la asignación de rol en wp_usermeta — así es como se corrige.

Crear un usuario administrador directamente en la base de datos es seguro y reversible. No se elimina nada — solo estás insertando nuevas filas. El sistema de usuarios de WordPress lee de estas tablas en cada inicio de sesión, por lo que la nueva cuenta está disponible en el momento en que se ejecutan las consultas.

¿Necesitas un servicio de restauración del usuario administrador de WordPress? Consigue WP Staging Pro y uno de nuestros desarrolladores restaurará el usuario administrador de WordPress por ti!

Antes de empezar: encuentra el prefijo de tabla de tu WordPress

Los tres métodos requieren conocer el prefijo de tabla de tu base de datos de WordPress. El predeterminado es wp_, pero muchos hosts o herramientas de migración lo cambian (por ejemplo, wpstg0_ o abc_).

Abre wp-config.php en la raíz de tu sitio y localiza la línea:

$table_prefix = 'wp_';

Reemplaza wp_ en cada ejemplo SQL de abajo por el valor que encuentres ahí. El prefijo también se aplica al valor meta_key — si tu prefijo es wpstg0_, la clave de capacidades es wpstg0_capabilities, no wp_capabilities.

Opción 1: Añadir un administrador de WordPress con un mu-plugin (sin necesidad de acceso a la base de datos)

Si tienes acceso por FTP o por el Administrador de Archivos de cPanel pero ninguna herramienta de base de datos, un plugin de uso obligatorio (mu-plugin) es la vía más rápida. Crea un nuevo archivo en wp-content/mu-plugins/add-admin.php y pega este código:

PHP
/*
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 y user_email por los valores que desees. Abre tu sitio en https://example.com/?add-admin para desencadenar la creación de la cuenta y luego inicia sesión con las nuevas credenciales.

Elimina el archivo del mu-plugin inmediatamente después de iniciar sesión. Dejarlo en su sitio significa que cualquiera que conozca la URL puede crear una cuenta de administrador en tu sitio.

Opción 2: Añadir un administrador de WordPress vía phpMyAdmin o Adminer

Abre tu herramienta de base de datos — Adminer o phpMyAdmin — y navega al panel de consultas SQL. Ejecuta las siguientes tres consultas en orden, actualizando el prefijo y las credenciales para que coincidan con tu sitio.

Importante: Si tienes otro prefijo de tabla en lugar de wp_, ¡también deberás modificar el prefijo de tabla!

Paso 1 — Insertar la fila del usuario. Sustituye el nombre de usuario, la contraseña, el nombre para mostrar y la dirección de correo electrónico que hayas elegido.

INSERT INTO `wp_users` (`user_login`, `user_pass`, `user_nicename`, `user_email`,
`user_status`)
VALUES ('wpstaging', MD5('password123'), 'Rene Hermenau', 'support@domain.com', '0');

Paso 2 — Asignar la capacidad del rol 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";}');

Paso 3 — Establecer el nivel de usuario heredado (comprobado por temas y plugins más antiguos).

INSERT INTO `wp_usermeta` (`umeta_id`, `user_id`, `meta_key`, `meta_value`) VALUES (NULL, (Select max(id) FROM wp_users), 'wp_user_level', '10');
Cómo crear un usuario administrador con SQL para WordPress
SQL Query

Después de que las tres consultas tengan éxito, navega a wp-login.php e inicia sesión con tus nuevas credenciales.

Si tu prefijo no es wp_, sustitúyelo en cada aparición de wp_users, wp_usermeta, wp_capabilities y wp_user_level. Por ejemplo, con el prefijo wpstg0_, los nombres de tabla pasan a ser wpstg0_users y wpstg0_usermeta, y la clave meta de capacidades pasa a ser wpstg0_capabilities.

Opción 3: Añadir un administrador de WordPress en la línea de comandos de MySQL

Si tienes acceso SSH, la línea de comandos de MySQL produce el mismo resultado que la Opción 2 sin necesitar una herramienta basada en navegador. Las sentencias SQL son idénticas — solo difiere la interfaz.

Paso 1 — Conectarse al servidor MySQL.

mysql -u <username> -p

Reemplaza <username> por tu usuario de MySQL. Se te pedirá que introduzcas la contraseña.

Paso 2 — Seleccionar la base de datos de WordPress.

USE <database_name>;

Reemplaza <database_name> por el nombre de la base de datos de wp-config.php (la constante DB_NAME).

Paso 3 — Insertar la nueva fila del usuario.

INSERT INTO wp_users (user_login, user_pass, user_nicename, user_email, user_status)
VALUES ('<username>', MD5('<password>'), '<display_name>', '<email>', '0');

Reemplaza <username>, <password>, <display_name> y <email> por tus valores. La función MD5() cifra la contraseña; usa aquí una contraseña fuerte y cámbiala desde el escritorio de WordPress después.

Paso 4 — Obtener el ID del nuevo usuario.

SELECT ID FROM wp_users WHERE user_login = '<username>';

Anota el entero devuelto — lo necesitas en el siguiente paso.

Paso 5 — Asignar el rol 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";}');

Reemplaza <user_id> por el ID devuelto en el Paso 4.

Ya has creado un nuevo usuario administrador de WordPress en la línea de comandos de MySQL. Inicia sesión en el escritorio con el nombre de usuario y la contraseña que elegiste.

Resolución de problemas: si la nueva cuenta no funciona

Si aún no puedes iniciar sesión, o la cuenta aparece en Usuarios pero muestra el rol como Suscriptor en lugar de Administrador, repasa estas tres causas en orden.

Prefijo de tabla incorrecto

El error más común es ejecutar las consultas con wp_ cuando el sitio usa un prefijo personalizado. Vuelve a ejecutar las consultas INSERT y UPDATE sustituyendo el prefijo correcto de wp-config.php. El valor meta_key también depende del prefijo: wp_capabilities pasa a ser <prefijo>capabilities, por ejemplo wpstg0_capabilities.

Fila wp_usermeta faltante

WordPress lee wp_capabilities de wp_usermeta para determinar el rol en cada inicio de sesión. Si el Paso 2 (Opción 2) o el Paso 5 (Opción 3) falló de forma silenciosa — por ejemplo porque la subconsulta user_id devolvió NULL —, la cuenta existe en wp_users pero no tiene rol. Vuelve a ejecutar la consulta INSERT INTO wp_usermeta y verifica que la fila aparece en la tabla antes de intentar iniciar sesión de nuevo.

Conflicto de correo duplicado

Si una cuenta existente ya tiene la dirección de correo que proporcionaste, el INSERT tiene éxito pero WordPress puede dirigir los intentos de inicio de sesión a la cuenta más antigua. Ejecuta primero SELECT user_email FROM wp_users para confirmar que el correo no está ya en uso, o elige una dirección de correo de recuperación única.

Tras restaurar el acceso: refuerza tu inicio de sesión de WordPress

Una vez que vuelvas al escritorio, dedica unos minutos a evitar un nuevo bloqueo:

  • Activa la autenticación de dos factores — cualquier plugin de 2FA de confianza hace que un ataque de fuerza bruta o la eliminación accidental de una cuenta tengan muchas menos probabilidades de dejarte bloqueado.
  • Audita los roles de usuario — ve a Usuarios → Todos los usuarios y confirma que no hay cuentas de administrador inesperadas, incluida la cuenta de recuperación que acabas de crear.
  • Actualiza el correo de la cuenta de recuperación o elimínala una vez que hayas verificado que tu cuenta de administrador principal funciona correctamente.
  • Elimina cualquier mu-plugin creado para esta recuperación de wp-content/mu-plugins/ inmediatamente después de recuperar el acceso.
  • Haz una copia de seguridad completa antes de cualquier futura cirugía de base de datos para tener un punto de reversión limpio.

Espero que este artículo te haya ayudado a entender cómo crear manualmente un nuevo usuario administrador en tu base de datos. Por favor, ponte en contacto con nosotros si aún tienes preguntas o si algo no está claro.

Rene Hermenau

Autor: Rene Hermenau

Sobre el autor: René Hermenau es el fundador de WP STAGING. Trabaja en copias de seguridad de WordPress, entornos de staging, migraciones, gestión de bases de datos y flujos de despliegue seguros.