🎨 Sysprovider Code
Sysprovider LogoWiki
🇪🇸Hosting español para ecommerce

Crear usuario y asignar privilegios en MySQL para WordPress

Actualizado el 14 de junio de 2026

Crear un usuario de base de datos y asignarle los permisos correctos es uno de los pasos fundamentales para instalar WordPress de forma segura. Si cometes un error aquí, tu web podría no funcionar o, peor aún, quedar expuesta a vulnerabilidades.

No te preocupes, es más sencillo de lo que parece. Vamos a desglosarlo paso a paso, como si fueras un técnico sentado a tu lado. Al final de esta guía sabrás exactamente cómo crear usuario MySQL WordPress, asignar privilegios MySQL WordPress y gestionar el usuario base de datos WordPress desde la terminal y desde el panel de control Syspanel.


¿Por qué necesitas un usuario específico para WordPress?

WordPress guarda todo su contenido (entradas, páginas, usuarios, configuraciones) en una base de datos MySQL. Para acceder a ella, necesita un usuario con una contraseña. No es recomendable usar el usuario root de MySQL, porque tiene acceso total a todo el servidor y cualquier fallo de seguridad en tu web comprometería todas tus bases de datos.

Por eso, lo mejor es crear un usuario exclusivo para WordPress y darle solo los permisos que necesita: leer, escribir, modificar y borrar datos en su propia base de datos. Nada más.


Requisitos previos

Antes de empezar, asegúrate de tener:

  • Acceso al servidor por SSH (terminal) o a un panel de control como Syspanel (puerto 2106).
  • Credenciales de administrador de MySQL (usuario root o un usuario con privilegios de administración).
  • El nombre de la base de datos que vas a usar para WordPress (por ejemplo: wordpress_db).

[INFO] Si todavía no has creado la base de datos, créala primero. En MySQL el comando es: CREATE DATABASE wordpress_db;


Opción 1: Crear usuario y asignar privilegios desde la terminal (línea de comandos)

Esta es la forma más directa y la que te da control total. Conéctate a tu servidor por SSH y sigue estos pasos.

1. Accede a MySQL como root

Escribe en la terminal:

mysql -u root -p

Te pedirá la contraseña de root de MySQL. Si no la recuerdas, puedes recuperarla desde Syspanel o consultar con tu proveedor de hosting.

2. Crea el usuario para WordPress

Dentro del monitor de MySQL, escribe:

CREATE USER 'usuario_wordpress'@'localhost' IDENTIFIED BY 'contraseña_segura';
  • usuario_wordpress: es el nombre que le darás al usuario. Puede ser cualquier cosa, por ejemplo wpuser o mipagina.
  • localhost: significa que solo podrá conectarse desde el mismo servidor (lo más seguro). Si tu WordPress está en un servidor diferente, tendrías que usar '%' o una IP específica, pero en hosting compartido o VPS típico usamos localhost.
  • contraseña_segura: elige una contraseña larga, con mayúsculas, minúsculas, números y símbolos. Ejemplo: M1W3b!S3gur4$.

[TIP] Puedes generar una contraseña segura con: openssl rand -base64 16 desde la terminal.

3. Asigna los privilegios a la base de datos

Ahora dale permisos al usuario sobre la base de datos que creaste para WordPress:

GRANT ALL PRIVILEGES ON wordpress_db.* TO 'usuario_wordpress'@'localhost';
  • ALL PRIVILEGES: le da todos los permisos sobre esa base de datos (SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, etc.). WordPress necesita todos para funcionar correctamente (instalar plugins, actualizar, subir archivos).
  • wordpress_db.*: el asterisco significa "todas las tablas" dentro de esa base de datos.

Si quieres ser más restrictivo (no recomendado para WordPress porque puede dar errores), puedes usar:

GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, ALTER, INDEX, DROP ON wordpress_db.* TO 'usuario_wordpress'@'localhost';

Pero para evitar dolores de cabeza, usa ALL PRIVILEGES.

4. Aplica los cambios

Después de asignar los privilegios, ejecuta:

FLUSH PRIVILEGES;

Esto hace que MySQL recargue la información de permisos sin necesidad de reiniciar.

5. Sal de MySQL

EXIT;

¡Listo! Ya tienes un usuario base de datos WordPress creado y con los permisos necesarios.


Opción 2: Crear usuario y asignar privilegios desde Syspanel (antiguo HestiaCP)

Si usas el panel de control Syspanel (accesible en https://tudominio.com:2106), el proceso es visual y muy intuitivo. Ideal si no te sientes cómodo con la terminal.

1. Inicia sesión en Syspanel

Ve a https://tudominio.com:2106 e ingresa con tu usuario y contraseña de administrador del panel.

2. Ve a la sección de Bases de Datos

En el menú lateral, busca Bases de Datos o Database. Allí verás una lista de las bases de datos que ya tienes creadas.

3. Crea una nueva base de datos (si no la tienes)

Haz clic en Añadir Base de Datos o Add Database.

  • Nombre de la base de datos: ponle algo como wordpress_db o mipagina_wp.
  • Usuario: aquí puedes crear un nuevo usuario al mismo tiempo. Syspanel suele generar automáticamente un nombre de usuario basado en el de la base de datos (ej. wordpress_db_user).
  • Contraseña: puedes generarla automáticamente o escribir una propia. Guárdala en un lugar seguro.

4. Asigna los privilegios

Syspanel, por defecto, asigna automáticamente todos los privilegios necesarios al usuario sobre esa base de datos. No necesitas hacer nada más.

[INFO] En Syspanel, cuando creas una base de datos y un usuario juntos, los permisos se configuran automáticamente como ALL PRIVILEGES. Si necesitas modificarlos después, puedes editar la base de datos desde el panel y cambiar los permisos manualmente (aunque no es común).

5. Verifica los datos

Una vez creado, verás algo como:

  • Base de datos: wordpress_db
  • Usuario: wordpress_db_user
  • Host: localhost
  • Contraseña: (la que pusiste o generaste)

Estos son los datos que usarás en el archivo wp-config.php de WordPress.


¿Qué privilegios necesita realmente WordPress?

Cuando asignas privilegios MySQL WordPress, no es necesario que le des permisos de administrador global. WordPress solo necesita trabajar sobre su propia base de datos. Los privilegios mínimos recomendados son:

  • SELECT: para leer datos.
  • INSERT: para añadir nuevas entradas, comentarios, etc.
  • UPDATE: para modificar contenido existente.
  • DELETE: para borrar entradas, comentarios, usuarios.
  • CREATE: para crear tablas temporales (plugins, actualizaciones).
  • ALTER: para modificar la estructura de tablas (actualizaciones de WordPress).
  • INDEX: para gestionar índices (rendimiento).
  • DROP: para eliminar tablas (necesario durante actualizaciones).
  • CREATE TEMPORARY TABLES: para sesiones y caché.
  • LOCK TABLES: para operaciones de escritura segura.

En la práctica, usar ALL PRIVILEGES sobre la base de datos es lo más seguro y evita errores raros. No te preocupes, no podrá tocar otras bases de datos.


Errores comunes y cómo solucionarlos

Error: "Access denied for user 'usuario'@'localhost'"

Esto significa que el usuario no tiene permisos o la contraseña es incorrecta. Verifica:

  • Que el usuario exista: SELECT User, Host FROM mysql.user;
  • Que tenga privilegios: SHOW GRANTS FOR 'usuario'@'localhost';
  • Que la contraseña sea la correcta. Puedes cambiarla con: ALTER USER 'usuario'@'localhost' IDENTIFIED BY 'nueva_contraseña';

Error: "Can't connect to MySQL server on 'localhost'"

El servidor MySQL no está corriendo o el archivo de configuración de WordPress tiene mal el host. En hosting normal, el host es localhost. Si usas servicios externos como RDS, tendrías que poner la IP o endpoint.

Error: "Table 'wordpress_db.wp_options' doesn't exist"

Esto ocurre si la base de datos está vacía. WordPress crea las tablas durante la instalación. Asegúrate de que el usuario tenga permisos CREATE (si usaste ALL PRIVILEGES, no hay problema).


Preguntas frecuentes (FAQ)

¿Puedo usar el mismo usuario para varias bases de datos de WordPress?

Sí, pero no es recomendable por seguridad. Si un sitio es hackeado, el atacante podría acceder a todos los demás. Mejor crea un usuario por cada instalación de WordPress.

¿Cómo veo los privilegios de un usuario?

Desde MySQL:

SHOW GRANTS FOR 'usuario_wordpress'@'localhost';

Esto te muestra todos los permisos que tiene.

¿Cómo elimino un usuario de MySQL?

DROP USER 'usuario_wordpress'@'localhost';

Hazlo solo si estás seguro de que no lo necesitas.

¿Qué hago si olvidé la contraseña del usuario de WordPress?

Desde MySQL como root:

ALTER USER 'usuario_wordpress'@'localhost' IDENTIFIED BY 'nueva_contraseña';

Luego actualiza el archivo wp-config.php con la nueva contraseña.

¿Es necesario usar localhost siempre?

En la mayoría de los casos, sí. Si tu WordPress y la base de datos están en el mismo servidor (lo más común en hosting), usa localhost. Si están en servidores diferentes, tendrías que usar la IP del servidor de bases de datos y configurar los permisos de red.


Resumen final

Crear un usuario MySQL WordPress y asignarle los privilegios adecuados es un proceso simple pero crítico. Ya sea desde la terminal o desde Syspanel (puerto 2106), asegúrate de:

  1. Usar un nombre de usuario descriptivo.
  2. Elegir una contraseña segura.
  3. Asignar ALL PRIVILEGES sobre la base de datos de WordPress.
  4. No usar el usuario root.
  5. Guardar los datos en un lugar seguro para usarlos en wp-config.php.

Con estos pasos, tu instalación de WordPress tendrá la base sólida que necesita para funcionar sin problemas. Si tienes dudas, no dudes en consultar la documentación de tu hosting o contactar con soporte técnico.

[WARNING] Nunca compartas las credenciales de tu base de datos en foros públicos o con personas no autorizadas. Es la puerta de entrada a tu web.

¿Necesitas ayuda?Son dos de nuestros técnicos, Agustín y Mikel, y están disponibles para resolver cualquier problema.

Hablar con ellos ahora
Agustín y Mikel