¿Cómo crear una base de datos en MySQL desde la terminal?
¿Te has preguntado alguna vez cómo crear una base de datos en MySQL desde la terminal? Si estás montando un sitio web con WordPress o PrestaShop, o simplemente necesitas gestionar datos en tu servidor Linux, saber manejar MySQL desde la línea de comandos es una habilidad súper útil.
No te preocupes si no eres un experto. En esta guía te explico paso a paso, con un lenguaje sencillo y muchos ejemplos prácticos, cómo crear base de datos mysql directamente desde la mysql terminal. Verás que es más fácil de lo que parece.
¿Qué necesitas antes de empezar?
Antes de meternos de lleno, asegúrate de tener lo siguiente:
- Acceso a un servidor Linux (puede ser VPS, dedicado o incluso una máquina virtual local).
- MySQL o MariaDB instalado. MariaDB es un clon de MySQL, muy común hoy en día. Los comandos son prácticamente los mismos.
- Credenciales de acceso a MySQL, normalmente el usuario
rooty su contraseña. - Un poco de paciencia y ganas de aprender. ¡Vamos allá!
[INFO] Si usas un panel de control como Syspanel (antes conocido como HestiaCP, accesible por el puerto 2106), normalmente ya tendrás MySQL instalado y funcionando. Incluso podrías crear bases de datos desde su interfaz web, pero desde la terminal tienes mucho más control.
Paso 1: Conectarse a MySQL desde la terminal
Lo primero es abrir una conexión con tu servidor. Usa un cliente SSH (como PuTTY en Windows o la terminal directamente en macOS/Linux).
Una vez dentro, escribe el siguiente comando para iniciar sesión en MySQL:
mysql -u root -p
mysqles el cliente de línea de comandos.-u rootle dice que te conectes con el usuarioroot(el administrador).-ple indica que te pedirá la contraseña.
Te pedirá la contraseña de root de MySQL. Escríbela y pulsa Enter.
[WARNING] La contraseña no se ve mientras escribes (ni asteriscos). Es normal, solo escríbela y pulsa Enter.
Si todo va bien, verás algo como esto:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 8
Server version: 8.0.32-0ubuntu0.22.04.2 (Ubuntu)
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql>
Ese mysql> es el prompt. Significa que ya estás dentro y puedes empezar a ejecutar comandos.
Paso 2: Crear la base de datos
Ahora sí, lo que viniste a hacer. Para crear base de datos mysql desde la terminal, usa el comando CREATE DATABASE. La sintaxis es muy simple:
CREATE DATABASE nombre_de_tu_base_de_datos;
Importante: Todos los comandos SQL deben terminar con punto y coma (;). Si olvidas el punto y coma, MySQL pensará que sigues escribiendo el comando y te mostrará una nueva línea con ->. Si pasa eso, solo escribe ; y pulsa Enter.
Ejemplo práctico:
CREATE DATABASE mi_tienda_online;
Si todo sale bien, verás el mensaje:
Query OK, 1 row affected (0.01 sec)
¡Listo! Ya tienes tu base de datos creada.
Buenas prácticas al nombrar tu base de datos
- Usa minúsculas: En Linux, los nombres de bases de datos diferencian entre mayúsculas y minúsculas. Para evitar confusiones, usa siempre minúsculas.
- Sin espacios: Reemplaza los espacios por guiones bajos (
_). - Nombre descriptivo: Elige un nombre que te recuerde para qué es. Por ejemplo,
wordpress_blog,prestashop_tienda,proyecto_clientes.
Paso 3: Verificar que la base de datos se creó correctamente
Siempre es bueno confirmar que todo está en orden. Para ver todas las bases de datos que existen en tu servidor MySQL, usa:
SHOW DATABASES;
Verás una lista como esta:
+--------------------+
| Database |
+--------------------+
| information_schema |
| mi_tienda_online |
| mysql |
| performance_schema |
| sys |
+--------------------+
5 rows in set (0.01 sec)
Ahí debería aparecer tu nueva base de datos (mi_tienda_online en este ejemplo).
Paso 4: Crear un usuario y darle permisos (¡Imprescindible!)
Crear la base de datos es solo la mitad del trabajo. Para que una aplicación (como WordPress o PrestaShop) pueda usarla, necesitas un usuario con permisos para conectarse a ella.
No es buena práctica usar el usuario root para tus aplicaciones. Crea un usuario específico para cada proyecto.
Crear un usuario
El comando básico para crear un usuario es:
CREATE USER 'nombre_usuario'@'localhost' IDENTIFIED BY 'contraseña_segura';
'nombre_usuario': El nombre que quieras (ej:wp_user).'localhost': Significa que solo podrá conectarse desde el mismo servidor (lo más común y seguro). Si necesitas acceso remoto, puedes usar'%'(cuidado con la seguridad).'contraseña_segura': Una contraseña robusta. Mezcla mayúsculas, minúsculas, números y símbolos.
Ejemplo:
CREATE USER 'wp_user'@'localhost' IDENTIFIED BY 'ClaveSuperSegura2024!';
Dar permisos al usuario sobre la base de datos
Ahora, asigna los permisos para que ese usuario pueda hacer cosas dentro de la base de datos que creaste.
El comando mágico es GRANT:
GRANT ALL PRIVILEGES ON nombre_base_datos.* TO 'nombre_usuario'@'localhost';
ALL PRIVILEGES: Le da todos los permisos (SELECT, INSERT, UPDATE, DELETE, CREATE, etc.).ON nombre_base_datos.*: Se aplica a todas las tablas (.*) de la base de datosnombre_base_datos.TO 'nombre_usuario'@'localhost': Se los asignamos al usuario que creamos.
Ejemplo práctico combinando lo anterior:
GRANT ALL PRIVILEGES ON mi_tienda_online.* TO 'wp_user'@'localhost';
Aplicar los cambios
Después de usar GRANT, es importante que MySQL cargue los nuevos permisos con:
FLUSH PRIVILEGES;
[TIP] Puedes combinar la creación del usuario y la asignación de permisos en un solo paso con
GRANT, pero es más claro hacerlo por separado si estás aprendiendo.
Paso 5: Salir de MySQL
Para salir del monitor de MySQL, escribe:
EXIT;
O simplemente presiona Ctrl + D. Volverás a la terminal de Linux.
Ejemplo completo: Preparando una base de datos para WordPress
Imagina que quieres instalar WordPress. Necesitas una base de datos y un usuario. Aquí tienes el proceso completo desde la terminal:
- Conéctate a MySQL:
mysql -u root -p - Crea la base de datos:
CREATE DATABASE wordpress_blog; - Crea el usuario:
CREATE USER 'wp_admin'@'localhost' IDENTIFIED BY 'MiPasswordWordPress#2024'; - Dale todos los permisos:
GRANT ALL PRIVILEGES ON wordpress_blog.* TO 'wp_admin'@'localhost'; - Aplica los cambios:
FLUSH PRIVILEGES; - Sal:
EXIT;
Durante la instalación de WordPress, cuando te pida los datos de la base de datos, usarás:
- Nombre de la base de datos:
wordpress_blog - Usuario:
wp_admin - Contraseña:
MiPasswordWordPress#2024
Ejemplo completo: Preparando una base de datos para PrestaShop
Para prestashop mysql el proceso es exactamente el mismo. Solo cambian los nombres.
CREATE DATABASE prestashop_tienda;CREATE USER 'ps_user'@'localhost' IDENTIFIED BY 'ClavePrestaShop!2024';GRANT ALL PRIVILEGES ON prestashop_tienda.* TO 'ps_user'@'localhost';FLUSH PRIVILEGES;
Luego, en la instalación de PrestaShop, introduces esos datos.
Comandos útiles adicionales para gestionar tu base de datos linux
Ya que estás en la terminal, te dejo algunos comandos que te vendrán genial:
Ver qué bases de datos existen
SHOW DATABASES;
Seleccionar (usar) una base de datos
USE nombre_base_datos;
Ver las tablas dentro de una base de datos
Primero selecciona la base de datos con USE, luego:
SHOW TABLES;
Borrar una base de datos (¡Cuidado!)
DROP DATABASE nombre_base_datos;
[WARNING] El comando
DROP DATABASEelimina la base de datos y TODOS SUS DATOS de forma permanente. No hay papelera de reciclaje. Úsalo solo si estás 100% seguro.
Ver los usuarios existentes
SELECT User, Host FROM mysql.user;
Cambiar la contraseña de un usuario
ALTER USER 'nombre_usuario'@'localhost' IDENTIFIED BY 'nueva_contraseña';
Preguntas Frecuentes (FAQ)
¿Puedo crear una base de datos MySQL desde la terminal sin ser root?
Sí, pero el usuario con el que te conectes debe tener el privilegio CREATE a nivel global o sobre la ubicación donde quieras crear la base de datos. Normalmente, solo root o usuarios con permisos administrativos pueden hacerlo.
¿Qué hago si olvido la contraseña de root de MySQL?
Es un problema común. Puedes restablecerla iniciando MySQL en modo seguro (sin validación de contraseñas). El proceso varía según el sistema operativo, pero generalmente implica detener el servicio MySQL, iniciarlo con --skip-grant-tables y luego actualizar la contraseña con ALTER USER.
¿Es seguro usar '%' en lugar de 'localhost' para el usuario?
Usar '%' permite que el usuario se conecte desde cualquier dirección IP. No es recomendable a menos que sea estrictamente necesario (por ejemplo, una aplicación externa). Si lo haces, asegúrate de que tu cortafuegos (firewall) esté bien configurado y solo permita conexiones desde IPs de confianza. Para aplicaciones web en el mismo servidor, usa siempre 'localhost'.
¿Necesito crear un usuario para cada base de datos?
No es obligatorio, pero es una muy buena práctica de seguridad. Así, si un sitio es comprometido, el atacante solo tendrá acceso a esa base de datos y no a las demás. Piensa en ello como tener una llave diferente para cada puerta de tu casa.
¿Puedo usar estos comandos en un panel como Syspanel?
Si usas Syspanel (HestiaCP, puerto 2106), puedes crear bases de datos y usuarios desde su interfaz web (en la sección "Base de datos"). Sin embargo, los comandos de la terminal te dan control total, y a veces son necesarios para tareas más avanzadas o para solucionar problemas.
¿Qué es MariaDB y cómo se relaciona con MySQL?
MariaDB es un "fork" (derivación) de MySQL creado por los desarrolladores originales de MySQL. Es compatible a nivel de comandos. Si en tu servidor tienes MariaDB, todos los comandos de esta guía funcionan exactamente igual. Puedes verificar qué tienes instalado con mysql --version.
¿Cómo importo una base de datos existente desde un archivo .sql?
Si tienes un archivo .sql con la estructura y datos de tu base de datos, puedes importarlo fácilmente desde la terminal (sin entrar al monitor de MySQL):
mysql -u usuario -p nombre_base_datos < archivo.sql
Te pedirá la contraseña del usuario y, si todo está bien, importará todo el contenido.
Conclusión
Como has visto, crear base de datos mysql desde la mysql terminal en un entorno base de datos linux es un proceso directo y muy poderoso. Dominar estos comandos te da un control absoluto sobre tus servidores y aplicaciones.
Ya sea que estés montando un wordpress base de datos, configurando prestashop mysql o cualquier otro proyecto, ahora tienes las herramientas para hacerlo con confianza.
Recuerda siempre:
- Conectarte con
mysql -u root -p. - Crear tu base de datos con
CREATE DATABASE. - Crear un usuario dedicado con
CREATE USER. - Asignar permisos con
GRANT. - ¡Y no olvides el
FLUSH PRIVILEGES!
Practica estos pasos en un entorno de pruebas si es posible, y verás que en poco tiempo te sentirás como un auténtico administrador de sistemas. ¡Mucha suerte!
