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

Cómo crear un usuario y asignar privilegios en MySQL/MariaDB (cPanel, Plesk, DirectAdmin)

Actualizado el 23 de octubre de 2025

¿Qué es un usuario y los privilegios en MySQL/MariaDB?

Cuando trabajas con bases de datos, es fundamental entender que MySQL y MariaDB separan la creación de la base de datos en sí de la creación del usuario que puede acceder a ella. Es un modelo de seguridad muy lógico: piensa en la base de datos como una caja fuerte y en el usuario como la llave que la abre. La llave (usuario) solo puede abrir la caja (base de datos) si le das los permisos adecuados (privilegios).

Muchos principiantes cometen el error de crear una base de datos y un usuario con el mismo nombre y asumir que ya tienen acceso. La realidad es que debes vincularlos explícitamente asignando privilegios. Este proceso es esencial para cualquier aplicación web (WordPress, Joomla, PrestaShop, etc.) y para mantener la seguridad de tus datos, ya que no quieres que un usuario tenga más permisos de los necesarios.

En este artículo, te explicaré paso a paso cómo crear un usuario y asignarle privilegios en MySQL/MariaDB desde los tres paneles de control más populares: cPanel, Plesk y DirectAdmin. También veremos el método clásico desde la línea de comandos (SSH), que es útil si tu hosting no tiene un panel gráfico.

[INFO] A lo largo de esta guía, cuando mencione "privilegios", me refiero a acciones como SELECCIONAR, INSERTAR, ACTUALIZAR, BORRAR, CREAR TABLAS, etc. La asignación correcta de estos permisos es clave para el rendimiento y la seguridad de tu aplicación.


Método 1: Crear usuario y asignar privilegios en cPanel

cPanel es, sin duda, el panel de control más extendido en el hosting compartido. Su interfaz es bastante intuitiva, pero tiene un flujo específico para bases de datos que debes conocer. La sección donde trabajarás se llama "Bases de datos MySQL".

Paso 1: Acceder a la sección de Bases de Datos

Primero, inicia sesión en tu cPanel. Busca la sección "Bases de datos" (normalmente en la parte central o inferior) y haz clic en el icono "Bases de datos MySQL". Verás una pantalla con varias opciones: crear bases de datos, crear usuarios y administrar privilegios.

Paso 2: Crear la base de datos (si no existe)

Si aún no tienes la base de datos creada, este es el momento. En el campo "Crear una base de datos", escribe el nombre que quieras. cPanel añadirá automáticamente un prefijo con tu nombre de usuario (ejemplo: tuusuario_mibasededatos). Anota este nombre completo, ya que lo necesitarás para conectar tu aplicación.

Haz clic en "Crear base de datos" y verás un mensaje de éxito.

Paso 3: Crear el usuario MySQL

Ahora ve a la sección "Crear un usuario MySQL" (justo debajo). Aquí debes elegir un nombre de usuario y una contraseña. Al igual que con la base de datos, cPanel añadirá tu prefijo de usuario (ejemplo: tuusuario_miusuario).

Para la contraseña, te recomiendo usar el generador de contraseñas seguras que ofrece cPanel. Haz clic en el botón "Crear un usuario". Verás un mensaje confirmando la creación.

Paso 4: Asignar el usuario a la base de datos (los privilegios)

Este es el paso crucial. En la sección "Añadir usuario a la base de datos", verás dos menús desplegables. Uno para seleccionar el usuario que acabas de crear y otro para seleccionar la base de datos. Selecciónalos y haz clic en "Añadir".

Se abrirá una nueva pantalla con una lista de privilegios. Verás casillas de verificación para cada permiso. Para una aplicación web estándar (como WordPress), te recomiendo marcar "TODOS LOS PRIVILEGIOS". Esto es seguro para la mayoría de los casos, ya que la aplicación necesita crear tablas, insertar datos, actualizarlos, etc.

Sin embargo, si quieres ser más estricto con la seguridad, puedes seleccionar solo estos privilegios básicos:

  • SELECT (leer datos)
  • INSERT (añadir datos)
  • UPDATE (modificar datos)
  • DELETE (eliminar datos)
  • CREATE (crear tablas)
  • ALTER (modificar la estructura de tablas)
  • INDEX (crear índices para acelerar búsquedas)
  • DROP (eliminar tablas)

Haz clic en "Hacer cambios" o "Guardar" (el texto puede variar). ¡Listo! Tu usuario ya tiene acceso a la base de datos.

[TIP] Si tu aplicación falla con errores de "permiso denegado", es muy probable que hayas olvidado este paso de "Añadir usuario a la base de datos". Es la causa número uno de problemas de conexión.


Método 2: Crear usuario y asignar privilegios en Plesk

Plesk es otro panel muy popular, especialmente en servidores VPS y dedicados. Su interfaz es más moderna y el flujo para gestionar bases de datos es ligeramente diferente. La gestión se realiza desde el apartado "Bases de datos" dentro de tu suscripción o dominio.

Paso 1: Navegar a la gestión de bases de datos

Inicia sesión en Plesk. En el menú lateral izquierdo, busca la sección "Sitios web y dominios". Haz clic en el dominio o suscripción donde quieras trabajar. Verás una lista de opciones; busca el icono de "Bases de datos" (suele ser un cilindro o un icono de BD). Haz clic en él.

Paso 2: Crear la base de datos

Haz clic en el botón "Agregar base de datos". Se abrirá un formulario. Debes especificar:

  • Nombre de la base de datos: Elige un nombre descriptivo.
  • Tipo de base de datos: Asegúrate de seleccionar MySQL o MariaDB.
  • Servidor: Si tienes varios, elige el que corresponda.

En la sección de "Usuarios" de este mismo formulario, verás opciones para crear un usuario. Plesk te permite crear el usuario y la base de datos en el mismo paso.

Paso 3: Crear el usuario y asignar privilegios

En el formulario de creación, busca la parte de "Agregar un usuario de base de datos". Aquí puedes:

  • Crear un nuevo usuario: Introduce un nombre de usuario y una contraseña.
  • Usar un usuario existente: Si ya tienes uno creado.

Justo debajo, verás una sección llamada "Privilegios". Plesk muestra una lista de permisos con casillas de verificación. Para la mayoría de las aplicaciones, puedes marcar la casilla "Todos los privilegios" (o "ALL PRIVILEGES").

Si quieres personalizarlo, puedes marcar solo los necesarios (SELECT, INSERT, UPDATE, DELETE, CREATE, etc.). Te recomiendo que, si no estás seguro, marques todos para evitar problemas de compatibilidad.

Haz clic en "Aceptar" o "OK". Plesk creará la base de datos, el usuario y asignará los privilegios en un solo paso.

[INFO] En Plesk, a diferencia de cPanel, el nombre de usuario y el de la base de datos no suelen tener prefijos obligatorios, lo que te da más libertad para elegir nombres claros.


Método 3: Crear usuario y asignar privilegios en DirectAdmin

DirectAdmin es un panel muy eficiente y con un enfoque directo. Es común en servidores de gama media y alta. La gestión de bases de datos se realiza desde el menú "MySQL Management" (o "Gestión de MySQL").

Paso 1: Acceder a la gestión de MySQL

Inicia sesión en DirectAdmin. En el menú principal, busca el icono que dice "MySQL Management". Haz clic en él. Te llevará a una página donde verás las bases de datos existentes y las opciones para crear nuevas.

Paso 2: Crear la base de datos

En la parte superior, verás un campo para "Crear nueva base de datos". Introduce el nombre que desees. DirectAdmin no añade prefijos por defecto, así que el nombre será exactamente el que escribas. Haz clic en "Crear".

Paso 3: Crear el usuario

Justo debajo de la sección de creación de bases de datos, verás otra para "Crear nuevo usuario". Introduce el nombre de usuario y una contraseña. Haz clic en "Crear".

Paso 4: Asignar privilegios

Ahora viene la parte importante. En la lista de bases de datos, busca la que acabas de crear y haz clic en el icono de "Editar" o en el nombre de la base de datos. Se abrirá una página de configuración.

Buscarás una sección que dice "Permisos de usuario" o "Asignar usuario a la base de datos". Verás una lista de usuarios disponibles. Selecciona el usuario que creaste y haz clic en el botón para añadirlo.

Se te presentará una lista de privilegios con casillas de verificación. DirectAdmin te ofrece un botón para "Marcar todos" que es muy útil. Te recomiendo marcar todos para la mayoría de las aplicaciones. Si quieres ser más restrictivo, elige manualmente los permisos que necesites.

Guarda los cambios. ¡Ya tienes tu usuario con acceso a la base de datos!

[TIP] En DirectAdmin, a veces tienes que hacer clic en el icono de "lápiz" o "editar" junto a la base de datos para acceder a la gestión de usuarios. No busques un botón gigante; suele ser un icono pequeño.


Método 4: La forma clásica: Crear usuario y privilegios por línea de comandos (SSH)

Si tienes acceso SSH a tu servidor, o si tu hosting no tiene un panel gráfico, este es el método definitivo. Es la forma más universal y te dará un control total. No te asustes, es más fácil de lo que parece.

Paso 1: Conectarte a MySQL

Primero, conecta a tu servidor por SSH. Luego, accede a MySQL con el usuario root (o un usuario con privilegios de administración). El comando es:

mysql -u root -p

Te pedirá la contraseña de root. Escríbela y pulsa Enter. Verás el prompt de MySQL: mysql>.

Paso 2: Crear la base de datos (si no existe)

En el prompt de MySQL, escribe el siguiente comando (recuerda el punto y coma al final):

CREATE DATABASE mibasededatos;

Paso 3: Crear el usuario

Ahora crea el usuario y su contraseña. La sintaxis es la siguiente:

CREATE USER 'miusuario'@'localhost' IDENTIFIED BY 'tu_contraseña_segura';

Importante: El @'localhost' indica que el usuario solo puede conectarse desde el mismo servidor. Si necesitas que se conecte desde otra IP, reemplaza localhost por la IP específica o por % (que permite cualquier host, aunque esto es menos seguro).

Paso 4: Asignar los privilegios

Este es el paso clave. Para darle todos los privilegios sobre la base de datos mibasededatos al usuario miusuario, ejecuta:

GRANT ALL PRIVILEGES ON mibasededatos.* TO 'miusuario'@'localhost';

Si quieres darle permisos específicos, la lista se separa por comas. Por ejemplo:

GRANT SELECT, INSERT, UPDATE, DELETE ON mibasededatos.* TO 'miusuario'@'localhost';

Paso 5: Aplicar los cambios y salir

Es muy importante que apliques los cambios para que el servidor los cargue. Ejecuta:

FLUSH PRIVILEGES;

Y sal del cliente MySQL:

EXIT;

¡Eso es todo! Ya tienes tu base de datos, tu usuario y los privilegios asignados.


Preguntas Frecuentes (FAQ)

¿Qué hago si olvidé la contraseña de mi usuario MySQL?

Puedes cambiarla desde tu panel de control (cPanel, Plesk o DirectAdmin) en la sección de gestión de usuarios de MySQL. Si usas SSH, puedes cambiar la contraseña con el comando:

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

¿Por qué mi aplicación no puede conectarse a la base de datos?

Las causas más comunes son:

  1. No has asignado el usuario a la base de datos (el paso de privilegios).
  2. La contraseña es incorrecta.
  3. El nombre de la base de datos o del usuario es incorrecto (revisa los prefijos en cPanel).
  4. El host de conexión es incorrecto. A menudo, en hosting compartido, es localhost, pero a veces es un host remoto como mysql.tudominio.com.

¿Qué es "ALL PRIVILEGES" y es seguro?

"ALL PRIVILEGES" es un atajo que otorga todos los permisos posibles sobre una base de datos. Es seguro si el usuario solo tiene acceso a esa base de datos específica. No es seguro si el usuario tiene acceso a todas las bases de datos del servidor (eso sería *.*). Para aplicaciones web, es lo más común y recomendado.

¿Puedo crear un usuario que acceda a varias bases de datos?

Sí. El mismo usuario puede ser asignado a múltiples bases de datos. En cPanel, simplemente repite el paso de "Añadir usuario a la base de datos" con otra base de datos. En SSH, ejecuta el GRANT para cada base de datos.

¿Qué significa el puerto 2106 en Syspanel?

Si estás usando Syspanel (la solución de gestión de hosting que antes se llamaba HestiaCP), debes saber que su panel de control se accede a través del puerto 2106 (por ejemplo, https://tu-servidor:2106). Dentro de Syspanel, la gestión de bases de datos se encuentra en la sección "Bases de datos" del menú principal. El proceso es similar al de Plesk: creas la base de datos, creas el usuario y luego asignas los privilegios desde la misma interfaz.

[WARNING] No confundas el puerto de acceso al panel de Syspanel (2106) con el puerto de MySQL (que es el 3306). Son cosas completamente diferentes.

¿Cuál es la diferencia entre MySQL y MariaDB?

MariaDB es un "fork" (derivado) de MySQL, creado por los desarrolladores originales. Es compatible a nivel de comandos y estructura, por lo que todo lo que has aprendido aquí aplica a ambos. La mayoría de los paneles de control te ofrecen elegir entre uno u otro al crear la base de datos.


Conclusión

Crear un usuario y asignar privilegios en MySQL/MariaDB es una tarea fundamental que dominarás con un poco de práctica. Ya sea que uses cPanel, Plesk, DirectAdmin o la línea de comandos, el principio es el mismo: crear la base de datos, crear el usuario y, lo más importante, vincularlos mediante los privilegios adecuados.

Recuerda siempre seguir el principio del mínimo privilegio: otorga solo los permisos que tu aplicación necesita. Esto minimiza el riesgo de daños accidentales o ataques maliciosos. Y si algo falla, vuelve a revisar los pasos de asignación de privilegios; es donde se esconden el 90% de los problemas de conexión.

Con esta guía, ya tienes el conocimiento para gestionar tus bases de datos con confianza. ¡Manos a la obra!

¿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