Cómo crear un usuario administrador en WordPress desde phpMyAdmin o MySQL (paso a paso)

Una ventana de terminal y una tabla de base de datos unidas por una llave, en estilo editorial plano

Te has quedado fuera de tu propio WordPress. El correo de recuperación no llega, o llega y el enlace no funciona, o tu usuario ya no es administrador y no sabes por qué. Lo único que sí tienes es el panel del hosting y, desde ahí, acceso a la base de datos.

Se arregla, y en cinco minutos. Esta guía recorre cinco rutas para crear un administrador nuevo, ordenadas de la que necesita menos acceso a la que necesita más: desde phpMyAdmin a base de clics hasta WP-CLI por SSH. Elige la que encaje con lo que tengas a mano.

Antes de tocar nada: la copia de la base de datos

Vas a escribir directamente en las tablas de usuarios. Si te equivocas en una celda, el sitio puede dejar de dejar entrar a nadie. Así que primero el respaldo, y no es un consejo de cortesía.

En phpMyAdmin: selecciona la base de datos en la columna de la izquierda, pestaña Exportar, método Rápido, formato SQL, y descarga el archivo. Tarda unos segundos y te deja un punto al que volver.

Si tu hosting tiene copias automáticas, comprueba que la última es de hoy y no de hace una semana. No es lo mismo.

Los dos datos que necesitas de wp-config.php

Abre wp-config.php, que está en la raíz de la instalación, por FTP o por el gestor de archivos del hosting. Busca estas líneas:

define( 'DB_NAME', 'nombre_de_tu_base_de_datos' );
define( 'DB_USER', 'usuario_mysql' );
define( 'DB_PASSWORD', '...' );
define( 'DB_HOST', 'localhost' );

$table_prefix = 'wp_';

Te interesan dos:

  • DB_NAME: qué base de datos abrir en phpMyAdmin, porque en un hosting compartido suele haber varias y se parecen mucho entre sí.
  • $table_prefix: el prefijo de las tablas. Lo normal es wp_, pero muchos instaladores ponen algo aleatorio tipo wp_7k2x_ por seguridad.

Ese prefijo es, con diferencia, el detalle que más veces hace que esto no funcione. Aparece en dos sitios distintos: en el nombre de las tablas y dentro del nombre de un campo de la tabla de metadatos. Más abajo lo verás.

Ruta 1: phpMyAdmin a base de clics

Si nunca has escrito una consulta SQL, esta es tu ruta. Son dos inserciones manuales.

Paso 1: crear la fila en wp_users

En phpMyAdmin, abre tu base de datos y busca la tabla wp_users (con tu prefijo). Entra y pulsa la pestaña Insertar.

Rellena así:

  • ID: déjalo vacío. Es autoincremental y MySQL le pone el siguiente número.
  • user_login: el nombre con el que vas a entrar. Por ejemplo soporte2026. Evita admin: es el primero que prueban los ataques de fuerza bruta.
  • user_pass: escribe la contraseña en claro y, en la columna Función de ese campo, elige MD5 en el desplegable. phpMyAdmin la cifra al guardar. Esto es importante: si pegas la contraseña sin elegir MD5, se guarda en texto plano y no podrás entrar.
  • user_nicename: la versión para URL, en minúsculas y con guiones: soporte2026.
  • user_email: un correo al que tengas acceso de verdad. No uses uno inventado: lo vas a necesitar para recuperar la contraseña la próxima vez.
  • user_url: vacío.
  • user_registered: la fecha de hoy en formato 2026-10-02 09:00:00. No lo dejes a cero, porque algunas configuraciones de MySQL en modo estricto rechazan la fila.
  • user_activation_key: vacío.
  • user_status: 0.
  • display_name: el nombre que se verá en el escritorio.

Pulsa Continuar. Apunta el ID que le ha tocado, porque lo necesitas en el paso siguiente. Si no lo ves, entra en la pestaña Examinar de la tabla: tu usuario es el último de la lista.

Paso 2: darle el rol de administrador en wp_usermeta

Ahora mismo tienes un usuario que puede entrar, pero sin permisos para nada. El rol no está en wp_users: vive en wp_usermeta, serializado.

Abre wp_usermeta, pestaña Insertar, y crea esta fila:

  • umeta_id: vacío.
  • user_id: el ID que apuntaste.
  • meta_key: wp_capabilities.
  • meta_value: a:1:{s:13:"administrator";b:1;}

Ese meta_value hay que copiarlo exacto, con las comillas, las llaves y el punto y coma final. Es un array de PHP serializado y el 13 es la longitud de la palabra administrator. Si cambias una letra, WordPress no entiende el rol y vuelves a tener un usuario sin permisos.

Y aquí está el detalle del prefijo. La clave es {prefijo}capabilities, no literalmente wp_capabilities. Si tu $table_prefix es wp_7k2x_, la clave tiene que ser wp_7k2x_capabilities. Es el fallo más repetido de todo este proceso: la fila se inserta bien, pero WordPress no la busca donde la has puesto.

Añade una segunda fila, igual que la anterior, con meta_key = wp_user_level (otra vez, con tu prefijo) y meta_value = 10. Es un campo heredado de versiones muy antiguas, pero algunos plugins viejos todavía lo leen y cuesta nada ponerlo.

Paso 3: entrar y cambiar la contraseña

Ve a tudominio.com/wp-admin y entra con el usuario y la contraseña que acabas de crear. Lo primero que haces dentro es ir a Usuarios → Perfil y generar una contraseña nueva desde el propio WordPress.

Esto no es una formalidad. WordPress acepta un hash MD5 en user_pass por compatibilidad con instalaciones antiguas, y al primer inicio de sesión correcto lo recifra con su algoritmo actual. Pero hasta que eso pase, tu contraseña está guardada con un cifrado de los años noventa. Cámbiala desde el escritorio y queda bien guardada.

Ruta 2: una consulta SQL y listo

Si te manejas con SQL, esto es lo mismo en veinte segundos. En phpMyAdmin, pestaña SQL, pega esto cambiando los valores de arriba y el prefijo si no es wp_:

INSERT INTO wp_users
  (user_login, user_pass, user_nicename, user_email, user_url,
   user_registered, user_activation_key, user_status, display_name)
VALUES
  ('soporte2026',
   MD5('UnaClaveLargaYProvisional2026'),
   'soporte2026',
   'tucorreo@tudominio.com',
   '',
   NOW(),
   '',
   0,
   'Soporte');

SET @uid = LAST_INSERT_ID();

INSERT INTO wp_usermeta (user_id, meta_key, meta_value) VALUES
  (@uid, 'wp_capabilities', 'a:1:{s:13:"administrator";b:1;}'),
  (@uid, 'wp_user_level',   '10'),
  (@uid, 'nickname',        'soporte2026'),
  (@uid, 'show_admin_bar_front', 'true');

LAST_INSERT_ID() devuelve el ID que MySQL acaba de asignar, así que no tienes que apuntarlo a mano. Si phpMyAdmin te obliga a ejecutar las consultas por separado y se pierde la variable, haz un SELECT ID FROM wp_users WHERE user_login = 'soporte2026'; y usa ese número en la segunda.

Acuérdate del prefijo en los dos sitios: en wp_users y wp_usermeta por un lado, y dentro de 'wp_capabilities' y 'wp_user_level' por otro.

Ruta 3: ascender a administrador un usuario que ya existe

Muchas veces el problema no es que no tengas usuario, es que tu usuario ha dejado de ser administrador: un plugin que lo tocó, una migración a medias, alguien que se equivocó de rol. Para eso no hace falta crear nada.

Primero localiza su ID:

SELECT ID, user_login, user_email FROM wp_users;

Y después, con ese número:

UPDATE wp_usermeta
SET meta_value = 'a:1:{s:13:"administrator";b:1;}'
WHERE user_id = 3 AND meta_key = 'wp_capabilities';

Si esa consulta te dice que ha afectado a 0 filas, es que ese usuario no tiene la fila de capacidades, y entonces hay que insertarla en vez de actualizarla:

INSERT INTO wp_usermeta (user_id, meta_key, meta_value)
VALUES (3, 'wp_capabilities', 'a:1:{s:13:"administrator";b:1;}');

Esta ruta tiene una ventaja sobre crear un usuario nuevo: no dejas cuentas sueltas por ahí de las que luego hay que acordarse.

Ruta 4: WP-CLI, si tienes SSH

Si el hosting te da acceso por SSH, olvídate de la base de datos. WP-CLI hace esto bien, valida los datos y no te deja meter un rol mal escrito.

Entra por SSH, ve a la carpeta de la instalación y:

wp user create soporte2026 tucorreo@tudominio.com --role=administrator --user_pass='UnaClaveLargaYProvisional2026' --display_name='Soporte'

Para ascender a uno que ya existe:

wp user set-role 3 administrator

Y para ver quién tiene permisos de administrador ahora mismo, que conviene mirarlo:

wp user list --role=administrator --fields=ID,user_login,user_email,user_registered

Si WP-CLI no está instalado, en muchos hostings compartidos viene ya con el comando wp disponible. Pruébalo antes de darlo por perdido.

Ruta 5: cuando sólo tienes FTP

Hay un caso molesto: tienes FTP pero el panel no te da phpMyAdmin ni SSH. Entonces se hace desde PHP.

Crea un archivo en wp-content/mu-plugins/acceso-temporal.php. Si la carpeta mu-plugins no existe, créala. Los plugins que viven ahí se cargan solos, sin activarlos, y funcionan aunque el tema esté roto o el escritorio no cargue.

<?php
/**
 * Plugin Name: Acceso temporal
 * Description: Crea un administrador. BORRAR ESTE ARCHIVO después de entrar.
 */

add_action( 'init', function () {

    $login  = 'soporte2026';
    $correo = 'tucorreo@tudominio.com';
    $clave  = 'UnaClaveLargaYProvisional2026';

    if ( username_exists( $login ) || email_exists( $correo ) ) {
        return;
    }

    $id = wp_create_user( $login, $clave, $correo );

    if ( ! is_wp_error( $id ) ) {
        $usuario = new WP_User( $id );
        $usuario->set_role( 'administrator' );
    }
} );

Súbelo, carga cualquier página del sitio una vez para que el código se ejecute, entra en /wp-admin y borra el archivo inmediatamente. Mientras esté ahí es una puerta abierta: cualquiera que la encuentre y sepa leer PHP tiene las credenciales delante.

Si no quieres crear la carpeta, el mismo bloque funciona pegado al final del functions.php de tu tema activo, con el mismo aviso de borrarlo después. Un detalle: si el tema se actualiza, el cambio desaparece, así que para esto el mu-plugin es más fiable.

Lo que hay que limpiar después

Ya estás dentro. Quedan cuatro cosas, y ninguna es opcional:

  1. Cambia la contraseña desde el escritorio. Usuarios → Perfil → Generar contraseña. Así se guarda con el cifrado actual de WordPress y no con el MD5 de apaño.
  2. Borra el archivo temporal, si has usado la ruta 5.
  3. Revisa la lista de administradores. Usuarios → filtro Administrador. Si ves cuentas que no reconoces, apunta sus correos antes de borrarlas: te van a hacer falta para entender qué ha pasado.
  4. Recupera tu usuario de siempre y borra el provisional, o déjalo pero con una contraseña decente y un correo real. Lo que no conviene es olvidarse de que existe.

Si has perdido el acceso porque te lo han quitado

Hay una diferencia grande entre «he olvidado la contraseña» y «mi usuario ha dejado de ser administrador de un día para otro». Lo segundo, muchas veces, es que alguien ha entrado antes que tú.

Si es tu caso, crear un administrador nuevo te devuelve el escritorio pero no arregla nada. Mira además estas tres cosas:

  • Usuarios que no reconoces en wp_users, sobre todo con fechas de registro recientes y correos en dominios raros.
  • El registro abierto con rol de administrador. Es un clásico. Ejecuta SELECT option_name, option_value FROM wp_options WHERE option_name IN ('users_can_register','default_role');. Si sale users_can_register = 1 y default_role = administrator, cualquiera que se registre en tu web se convierte en administrador. Eso no lo configura nadie por error.
  • Archivos PHP recientes en wp-content/uploads, donde no debería haber ninguno, y en mu-plugins.

Si encuentras cualquiera de las tres, el sitio está comprometido y el problema no es el acceso: hay que limpiarlo de verdad, cambiar todas las contraseñas, regenerar las claves de seguridad de wp-config.php y entender por dónde entraron. Un administrador nuevo encima de un sitio infectado dura lo que tarde el atacante en volver a mirar.

Casos que se salen de lo normal

El prefijo no es wp_

Ya ha salido dos veces, pero es el 80% de los «lo he hecho todo y no entro». Si tu prefijo es abc_, las tablas son abc_users y abc_usermeta, y las claves de metadatos son abc_capabilities y abc_user_level. Los dos sitios.

Multisitio

En una red multisitio el rol funciona por sitio: cada subsitio tiene su propia clave de capacidades con el ID dentro, del estilo wp_3_capabilities para el sitio 3. Y por encima de los administradores está el super administrador, que no vive en wp_usermeta sino en la opción site_admins de la tabla wp_sitemeta, como un array serializado de nombres de usuario.

Ahí la recomendación es clara: usa WP-CLI. wp super-admin add soporte2026 lo resuelve sin tocar arrays a mano, y editar site_admins con un serializado mal contado deja la red entera sin administradores.

La contraseña en MD5 y las versiones nuevas de WordPress

WordPress cambió su cifrado de contraseñas en la versión 6.8 y ahora usa bcrypt, con hashes que empiezan por $wp$. Los antiguos de phpass, que empiezan por $P$, siguen funcionando, y el MD5 a secas también, porque se mantiene la compatibilidad hacia atrás: al entrar con una contraseña correcta, WordPress detecta que el hash es viejo y lo regraba con el formato actual.

Por eso el truco del MD5() sigue sirviendo en 2026. Y por eso el paso de cambiar la contraseña nada más entrar importa: es lo que fuerza ese regrabado.

Entras pero el escritorio sale en blanco o sin menús

Si has entrado y el escritorio aparece pelado, sin el menú de la izquierda, el rol no se está leyendo. Casi siempre es el prefijo en la clave de capacidades, o el array serializado con una comilla cambiada. Revisa la fila de wp_usermeta carácter a carácter: tiene que ser exactamente a:1:{s:13:"administrator";b:1;}.

Lo que haríamos nosotros

Si esto te ha pasado una vez, es un mal rato. Si te pasa cada pocos meses, el problema no es el acceso: es que no hay nadie llevando el mantenimiento de la instalación. Las causas de que alguien se quede fuera de su WordPress son casi siempre las mismas tres: el correo del sitio no sale porque el hosting no tiene bien configurado el envío, no hay un segundo administrador por si el primero falla, y nadie revisa la lista de usuarios.

Las tres se arreglan en una tarde y no se vuelven a tocar. Y si estás en ese punto en el que WordPress te da más guerra que resultados, hay otras conversaciones que merece la pena tener: desde elegir un hosting que no te deje tirado hasta quitarte de encima el constructor visual que te está lastrando el rendimiento.

ISO/IEC 27001 · EUROCERT · certificado n.º 00.15.0793

Sortlist Trusted PartnerShopify Select PartnerChooseMyCompany, resultados certificados de Pango StudioEl 100 % de la plantilla recomienda trabajar aquíEmpresa certificada por ChooseMyCompanyFinanciada por ENISA — Ministerio de Industria y Turismo

Proyecto “Planificador Quirúrgico” subvencionado con el expediente 03-SSD1-00035.4/2025 del Programa de subvenciones para el desarrollo e implantación de soluciones digitales en pymes, dentro del programa RETECH – redes de emprendimiento de la Comunidad de Madrid, en el marco del Plan de Recuperación, Transformación y Resiliencia, financiado por la Unión Europea – Next Generation EU.

Financiado por la Unión Europea — NextGenerationEU Gobierno de España — Ministerio para la Transformación Digital y de la Función Pública Plan de Recuperación, Transformación y Resiliencia Comunidad de Madrid
Contacto

Cuéntanos tu proyecto

Un meet de 30 minutos para entender tu proyecto y decirte, sin rodeos, si somos el equipo adecuado.

✓ Respondemos en menos de 24 h laborables
✓ Escríbenos a hola@pangostudio.com