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

Crear base de datos MySQL desde línea de comandos en DirectAdmin

Actualizado el 3 de noviembre de 2025

¿Alguna vez has necesitado crear una base de datos MySQL para tu web o aplicación y no tenías acceso al panel de control de DirectAdmin? O quizás quieres hacerlo más rápido, sin dar tantos clics. Una de las formas más potentes y directas es hacerlo desde la línea de comandos (SSH). No te asustes, no necesitas ser un hacker. Con unos pocos comandos y siguiendo esta guía, podrás crear tu base de datos MySQL desde la terminal en cuestión de segundos. Te explicaré paso a paso, como si estuviera sentado a tu lado.

¿Por qué usar la línea de comandos para crear una base de datos?

Aunque DirectAdmin tiene una interfaz gráfica muy amigable para gestionar bases de datos, hay situaciones donde usar SSH es más eficiente:

  • Rapidez: Una vez que memorizas los comandos, es mucho más rápido que navegar por menús.
  • Automatización: Si necesitas crear muchas bases de datos (por ejemplo, para clientes o sitios de pruebas), puedes escribir un pequeño script.
  • Solución de problemas: A veces, el panel web puede tener algún error o no cargar correctamente. SSH es tu plan B infalible.
  • Control total: Te permite ejecutar consultas avanzadas que no siempre están disponibles en la interfaz gráfica.

Requisitos previos: Lo que necesitas antes de empezar

Antes de lanzarte a escribir comandos, asegúrate de tener esto listo:

  1. Acceso SSH a tu servidor: Necesitas un cliente SSH (como PuTTY en Windows, o la terminal nativa en Mac/Linux) y tus credenciales de acceso (usuario y contraseña o clave SSH).
  2. Credenciales de root de MySQL o de un usuario con permisos: Lo más común es usar el usuario root de MySQL o un usuario que tenga privilegios para crear bases de datos y usuarios. En DirectAdmin, el usuario root de MySQL suele tener una contraseña que puedes encontrar en el archivo /usr/local/directadmin/conf/mysql.conf o preguntando a tu proveedor de hosting.
  3. Conocimientos básicos de navegación en terminal: Saber escribir comandos y presionar Enter es suficiente.

[WARNING] ¡Cuidado con la contraseña de root de MySQL! Es la llave maestra de todas tus bases de datos. No la compartas ni la guardes en lugares inseguros.

Paso 1: Conectarte a tu servidor por SSH

Abre tu terminal (si usas Mac o Linux) o PuTTY (si usas Windows) y conéctate a tu servidor usando la siguiente estructura:

ssh usuario@tu-dominio-o-ip

Por ejemplo: ssh admin@midominio.com

Te pedirá tu contraseña. Escríbela (no verás los caracteres mientras escribes, es normal) y presiona Enter. ¡Ya estás dentro!

Paso 2: Acceder al monitor de MySQL (CLI)

Una vez dentro del servidor, necesitas iniciar sesión en el cliente de MySQL. El comando básico es:

mysql -u root -p
  • -u root: Indica que te conectas como usuario root.
  • -p: Le dice a MySQL que te pedirá una contraseña.

Presiona Enter y te pedirá la contraseña de root de MySQL. Escríbela y presiona Enter de nuevo. Verás algo como esto:

Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 123456
Server version: 8.0.33 (MySQL Community Server - GPL)

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql>

¡Felicidades! Ahora estás dentro del monitor de MySQL. El prompt mysql> es tu nuevo hogar.

[TIP] Si no recuerdas la contraseña de root de MySQL en DirectAdmin, puedes ejecutar este comando desde el shell (fuera de MySQL) para verla: cat /usr/local/directadmin/conf/mysql.conf

Paso 3: Crear la base de datos

Dentro del monitor de MySQL, el comando para crear una base de datos es sorprendentemente simple:

CREATE DATABASE nombre_de_tu_base_de_datos;

Importante: No olvides el punto y coma (;) al final de cada comando SQL. Es la forma de decirle a MySQL que has terminado la instrucción.

Por ejemplo, para crear una base de datos llamada miproyecto_db:

CREATE DATABASE miproyecto_db;

Si todo va bien, MySQL te responderá con:

Query OK, 1 row affected (0.00 sec)

¡Base de datos creada! Puedes verificarlo con el comando:

SHOW DATABASES;

Verás tu nueva base de datos en la lista.

Paso 4: Crear un usuario y asignarle privilegios (El paso clave)

Crear la base de datos es solo la mitad del trabajo. Necesitas un usuario que pueda conectarse a ella desde tu aplicación (WordPress, Laravel, etc.). Si no creas un usuario, nadie podrá usar la base de datos.

4.1 Crear el usuario

El comando para crear un usuario es:

CREATE USER 'nombre_usuario'@'localhost' IDENTIFIED BY 'contraseña_segura';
  • 'nombre_usuario': El nombre que quieras darle al usuario (ej: miproyecto_user).
  • 'localhost': Indica que solo podrá conectarse desde el mismo servidor. Es lo más seguro y común para aplicaciones web. Si necesitas acceso remoto (no recomendado), puedes usar '%'.
  • 'contraseña_segura': Una contraseña robusta. Mezcla mayúsculas, minúsculas, números y símbolos.

Ejemplo:

CREATE USER 'miproyecto_user'@'localhost' IDENTIFIED BY 'ClaveS3gur4!2024';

4.2 Asignar todos los privilegios al usuario sobre la base de datos

Ahora, dale al usuario control total sobre la base de datos que creaste:

GRANT ALL PRIVILEGES ON nombre_de_tu_base_de_datos.* TO 'nombre_usuario'@'localhost';
  • ALL PRIVILEGES: Le da todos los permisos (SELECT, INSERT, UPDATE, DELETE, etc.).
  • ON nombre_de_tu_base_de_datos.*: Aplica los permisos a todas las tablas (*) dentro de tu base de datos.
  • TO 'nombre_usuario'@'localhost': Se lo asignas al usuario que creaste.

Ejemplo:

GRANT ALL PRIVILEGES ON miproyecto_db.* TO 'miproyecto_user'@'localhost';

4.3 Aplicar los cambios (¡Obligatorio!)

Este paso es crucial. MySQL almacena los privilegios en memoria, pero para que los cambios surtan efecto, debes ejecutar:

FLUSH PRIVILEGES;

Este comando recarga la tabla de privilegios y hace que tu nuevo usuario pueda usar la base de datos inmediatamente.

[INFO] Piensa en FLUSH PRIVILEGES como el botón de "guardar" después de configurar los permisos. Si no lo ejecutas, el usuario podría no poder conectarse.

Paso 5: Salir del monitor de MySQL y probar la conexión

Para salir del monitor de MySQL, escribe:

EXIT;

O simplemente presiona Ctrl + D. Volverás al shell de tu servidor.

Ahora, para probar que todo funciona, puedes intentar conectarte a MySQL con el nuevo usuario:

mysql -u miproyecto_user -p miproyecto_db

Te pedirá la contraseña que le pusiste al usuario. Si la escribes bien, entrarás al monitor de MySQL y verás el prompt mysql>. ¡Conexión exitosa!

Resumen rápido de los comandos

Para que no te pierdas, aquí tienes el resumen de todo lo que necesitas escribir en el monitor de MySQL:

-- 1. Crear la base de datos
CREATE DATABASE miproyecto_db;

-- 2. Crear el usuario (cambia la contraseña por una segura)
CREATE USER 'miproyecto_user'@'localhost' IDENTIFIED BY 'ClaveS3gur4!2024';

-- 3. Asignar privilegios
GRANT ALL PRIVILEGES ON miproyecto_db.* TO 'miproyecto_user'@'localhost';

-- 4. Aplicar cambios
FLUSH PRIVILEGES;

-- 5. Salir
EXIT;

Preguntas Frecuentes (FAQ)

¿Puedo crear una base de datos desde SSH si mi hosting usa Syspanel (HestiaCP)?

Sí, absolutamente. El proceso es el mismo. Syspanel (antes conocido como HestiaCP, cuyo panel de acceso es por el puerto 2106) también usa MySQL o MariaDB como motor de bases de datos. Los comandos SQL son universales. La única diferencia es que, dependiendo de la configuración de Syspanel, puede que el usuario root de MySQL tenga una contraseña diferente. Puedes encontrarla en los archivos de configuración del panel o preguntando a tu proveedor.

¿Qué hago si me sale el error "ERROR 1045 (28000): Access denied for user 'root'@'localhost'"?

Esto significa que la contraseña de root de MySQL que estás usando es incorrecta. Revisa que la estés escribiendo bien. Si la has olvidado, en DirectAdmin puedes resetearla desde el panel de administración (Admin Level -> MySQL Management) o, si tienes acceso root al servidor, usando comandos de recuperación.

¿Es seguro crear usuarios con acceso desde cualquier lugar ('%')?

Generalmente no. Solo usa '%' si realmente necesitas conectarte a tu base de datos desde otro servidor (por ejemplo, una aplicación externa). Si es para tu web, que está en el mismo servidor, usa siempre 'localhost'. Es mucho más seguro.

¿Necesito crear un usuario por cada base de datos?

Sí, es una buena práctica de seguridad. No uses el mismo usuario y contraseña para todas tus bases de datos. Si una aplicación es vulnerable, el atacante solo podrá acceder a esa base de datos y no a todas las demás.

¿Puedo eliminar una base de datos desde SSH?

Sí, pero con mucho cuidado. Dentro del monitor de MySQL, el comando es DROP DATABASE nombre_de_la_base;. Este comando no se puede deshacer. Asegúrate de tener un backup antes de ejecutarlo.

¿Y si quiero ver qué bases de datos tengo ya creadas?

Usa el comando SHOW DATABASES; dentro del monitor de MySQL. Verás una lista de todas las bases de datos en el servidor.

Conclusión

Crear una base de datos MySQL desde la línea de comandos en DirectAdmin es una habilidad muy valiosa que te da control y velocidad. Aunque al principio pueda parecer complejo, verás que con un poco de práctica se convierte en algo natural. Ya sea que estés configurando un nuevo sitio web, una aplicación o simplemente haciendo mantenimiento, este método te sacará de más de un apuro.

Recuerda siempre los cuatro pasos clave: conectar por SSH, entrar a MySQL, crear la base de datos, crear el usuario y asignarle privilegios, y finalmente aplicar los cambios con FLUSH PRIVILEGES. ¡Ahora ya estás listo para gestionar tus bases de datos como un profesional!

¿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