Ilustración de una base de datos con una llave y un escudo con marca de verificación

Cómo crear un usuario administrador en WordPress desde la base de datos (SQL y WP-CLI)

Perder el acceso al panel de WordPress pasa más de lo que parece: se te olvidó el correo con el que creaste la cuenta, el sitio lo heredaste sin credenciales o alguien se coló y borró tu usuario. Si puedes entrar a la base de datos o ejecutar WP-CLI, volver a ser administrador toma un par de minutos. Esta guía muestra los dos caminos, y los probé en una instalación local de WordPress 7.1.

> Antes de empezar: haz una copia de la base de datos (en phpMyAdmin, pestaña Exportar). Vas a escribir directamente en las tablas de usuarios y un error ahí es difícil de deshacer.

Primero averigua el prefijo de tus tablas

Casi todos los tutoriales dan por hecho que las tablas empiezan por wp_, pero no siempre es así. Abre wp-config.php y busca esta línea:

$table_prefix = 'wp_';

Lo que haya entre comillas es tu prefijo. En los ejemplos de abajo uso wp_; cámbialo por el tuyo. Si el prefijo no coincide, las consultas fallarán o, peor, crearán un usuario que WordPress no reconoce como administrador.

Opción 1: con WP-CLI (la más cómoda)

Si tienes acceso por SSH al servidor y WP-CLI instalado, no hace falta tocar la base de datos a mano. Desde la carpeta del sitio:

wp user list --role=administrator

Ese comando muestra quiénes son hoy los administradores; a veces el usuario existe y solo hay que cambiar su contraseña:

wp user update nombre-de-usuario --user_pass='UnaClaveLargaYUnica#2026'

Y para crear un administrador nuevo:

wp user create nuevoadmin correo@ejemplo.com --role=administrator --user_pass='UnaClaveLargaYUnica#2026'

Puedes comprobar que la clave quedó bien con wp user check-password nuevoadmin 'UnaClaveLargaYUnica#2026', que no imprime nada si coincide.

Opción 2: con SQL en phpMyAdmin

Esta es la vía cuando solo tienes el panel de tu hosting. Entra a phpMyAdmin, selecciona la base de datos de tu sitio y abre la pestaña SQL.

Paso 1: crea el usuario

INSERT INTO wp_users
  (user_login, user_pass, user_nicename, user_email, user_url, user_registered, user_status, display_name)
VALUES
  ('nuevoadmin', MD5('UnaClaveLargaYUnica#2026'), 'nuevoadmin', 'correo@ejemplo.com', '', NOW(), 0, 'nuevoadmin');

Cambia nuevoadmin, la contraseña y el correo. Sí, la clave se guarda con MD5: es un formato antiguo que WordPress todavía acepta. En mi prueba, al iniciar sesión por primera vez WordPress reemplazó ese hash por uno más seguro (un hash bcrypt, que empieza por $wp$2y$), así que no queda guardado con MD5 para siempre.

Paso 2: dale el rol de administrador

El usuario del paso anterior todavía no puede hacer nada. Los permisos viven en la tabla wp_usermeta:

INSERT INTO wp_usermeta (user_id, meta_key, meta_value)
VALUES
  ((SELECT ID FROM wp_users WHERE user_login = 'nuevoadmin'), 'wp_capabilities', 'a:1:{s:13:"administrator";b:1;}'),
  ((SELECT ID FROM wp_users WHERE user_login = 'nuevoadmin'), 'wp_user_level', '10');

Fíjate en dos detalles:

  • La clave wp_capabilities lleva tu prefijo: si tu prefijo es sitio_, la clave se llama sitio_capabilities (y sitio_user_level).
  • El texto a:1:{s:13:"administrator";b:1;} es un dato serializado de PHP. El 13 es la cantidad exacta de letras de administrator; si lo cambias o lo escribes con otro número, WordPress no lo entiende.

Con esas dos filas ya puedes iniciar sesión en tusitio.com/wp-login.php. Comprobé que el usuario quedó con el rol administrador y con permiso para gestionar opciones del sitio.

Si solo necesitas cambiar una contraseña

Cuando el usuario existe, basta con una consulta:

UPDATE wp_users SET user_pass = MD5('OtraClaveLargaYUnica#2026') WHERE user_login = 'tu-usuario';

También la probé: WordPress acepta la nueva clave.

Después de entrar: cierra la puerta

  1. Cambia la contraseña desde el perfil de WordPress por una larga y única, y borra el usuario temporal si ya no lo necesitas.
  2. Si el motivo fue un hackeo, revisa la lista de administradores (wp user list --role=administrator o Usuarios → Todos los usuarios en el panel) y borra los que no reconozcas. Un atacante suele dejarse su propio administrador.
  3. Cierra las sesiones abiertas cambiando las claves y salts de wp-config.php (puedes generar unas nuevas en el generador oficial). Eso desconecta a cualquiera que siguiera dentro.
  4. Actualiza WordPress, el tema y los plugins, y revisa que no queden archivos raros en el servidor.

Errores frecuentes

  • El usuario inicia sesión pero ve el panel vacío o "no tienes permisos": casi siempre es el prefijo equivocado en wp_capabilities, o el texto serializado mal escrito.
  • Usuarios duplicados: la tabla wp_users no impide repetir el nombre o el correo, así que un INSERT sobre un usuario que ya existe lo duplica sin avisar. Antes de insertar, comprueba con SELECT ID, user_login, user_email FROM wp_users; que el nombre no esté en uso.
  • Instalaciones multisitio: las claves de permisos incluyen el número del sitio y hay que añadir además el usuario a cada sitio de la red; esta guía no cubre ese caso.

¿Y si no tienes acceso a la base de datos?

Todavía hay una salida: crear el administrador editando el archivo functions.php del tema por FTP. Está explicado paso a paso en Cómo añadir un usuario admin mediante FTP.

Si prefieres que lo recupere yo, escríbeme desde la página de contacto y revisamos tu caso. También puedes ver más notas en la categoría WordPress.

Referencias

Para preparar esta guía revisé cómo lo explican otros sitios, y después comprobé cada paso en un WordPress local: Aquí Hay Dominios y Daganet. La documentación de WP-CLI describe todos los comandos de wp user.

¿Tienes un proyecto web en mente?

Un sitio, una tienda, una aplicación o una mejora: cuéntame qué necesitas y te respondo con una propuesta clara.

Contáctame