Si alguna vez has visto una base de datos MySQL y has pensado:

“¿Quién entra aquí?, ¿con qué permisos?, ¿y si alguien borra todo sin querer?”

Entonces este post es para ti.


Hoy vamos a crear un usuario en MySQL con contraseña, le vamos a dar permisos solo a la base de datos que necesita, y antes de todo eso veremos cómo verificar si el usuario ya existe, para no tropezarnos dos veces con la misma piedra.


El objetivo del día

Al terminar este tutorial podrás:

  • Ver qué usuarios existen en MySQL
  • Crear un usuario con contraseña
  • Asignarle permisos a una base de datos específica
  • Verificar que todo quedó bien configurado


Paso 1: ¿El usuario ya existe? Verifiquémoslo

Antes de crear cualquier usuario, siempre revisa si ya existe.

MySQL no es fan de los duplicados.

Ejecuta esto:

SELECT User, Host FROM mysql.user; 

📌 Esto te mostrará todos los usuarios registrados y desde qué host pueden conectarse (localhost%, etc.).

Si ves algo como:

juanito | localhost

El usuario ya anda por ahí y no necesitas crearlo de nuevo.

✨ Tip moderno (MySQL 5.7+ / 8.0)

También puedes usar directamente:

CREATE USER IF NOT EXISTS 'juanito'@'localhost'; 

Pero igual es buena práctica saber qué hay en tu servidor.

🔐 Paso 2: Crear a Juanito con contraseña

Ahora sí, vamos a darle vida oficialmente.

CREATE USER 'juanito'@'localhost' IDENTIFIED BY 'MiPasswordSuperSecreto123'; 

¿Qué está pasando aquí?

  • 'juanito' → nombre del usuario
  • 'localhost' → desde dónde puede conectarse
  • IDENTIFIED BY → su contraseña (usa una fuerte, por favor 🙏)

Paso 3: Darle permisos SOLO a su base de datos

Supongamos que Juanito solo debe trabajar con la base de datos:

tienda_online

Nada de andar tocando lo que no debe.

GRANT ALL PRIVILEGES ON tienda_online.* TO 'juanito'@'localhost'; 

🔍 Esto significa:

  • ALL PRIVILEGES → puede hacer SELECT, INSERT, UPDATE, DELETE, etc.
  • tienda_online.* → todas las tablas de esa base de datos
  • No puede tocar otras bases 👮‍♂️

Paso 4: Aplicar los cambios (por si acaso)

Normalmente MySQL lo hace solo, pero no cuesta nada asegurarnos:

FLUSH PRIVILEGES; 

Paso 5: Confirmar que Juanito tiene sus permisos

Nada mejor que revisar que todo quedó bien:

SHOW GRANTS FOR 'juanito'@'localhost'; 

Si ves algo relacionado con tienda_online, misión cumplida 🎉

Extra: probar el acceso como Juanito

Desde la terminal:

mysql -u juanito -p 

Te pedirá la contraseña y, si entras sin errores…

🥳 Juanito está oficialmente en producción.



🚨 Consejos rápidos de seguridad (léelos, por favor)

  • ❌ No uses usuarios root para aplicaciones
  • ❌ No otorgues permisos globales si no son necesarios
  • ✅ Usa contraseñas largas y únicas
  • ✅ Un usuario por aplicación es una muy buena idea


🧠 Resumen express (para los que vuelven después)


-- Ver usuarios 
SELECT User, Host FROM mysql.user; 
-- Crear usuario 
CREATE USER 'juanito'@'localhost' IDENTIFIED BY 'password'; 
-- Dar permisos 
GRANT ALL PRIVILEGES ON tienda_online.* TO 'juanito'@'localhost'; 
-- Aplicar cambios 
FLUSH PRIVILEGES; 
-- Ver permisos 
SHOW GRANTS FOR 'juanito'@'localhost'; 


Para cerrar…

Crear usuarios en MySQL no tiene por qué ser complicado ni aburrido.

Si entiendes quién accede, desde dónde y a qué, ya estás un paso adelante como administrador o desarrollador.

Si este post te sirvió, guárdalo o compártelo