Solucionar error "Access denied" en MySQL


¿Qué es el error "Access denied"?

El error "Access denied" (acceso denegado) en MySQL ocurre cuando intentás conectarte a la base de datos o ejecutar un comando, pero el usuario no tiene los permisos necesarios o las credenciales son incorrectas. Este es uno de los errores más comunes al trabajar con MySQL.


Causas comunes del error

  • Contraseña incorrecta
  • Usuario no existe o no tiene permisos
  • Intento de conexión desde un host no permitido
  • Privilegios insuficientes para la operación

Soluciones paso a paso

1. Verificar credenciales

  • Confirmá que el nombre de usuario y contraseña sean correctos.
  • Verificá que no haya espacios adicionales o caracteres especiales mal escritos.
  • Probá conectarte desde la terminal para verificar:
mysql -u usuario -p

2. Verificar que el usuario existe

Si tenés acceso como root o administrador, verificá que el usuario exista:

mysql -u root -p
SELECT user, host FROM mysql.user WHERE user='nombre_usuario';

Si el usuario no existe, deberás crearlo o usar un usuario diferente.


3. Verificar permisos del usuario

Revisá los permisos del usuario para la base de datos específica:

SHOW GRANTS FOR 'usuario'@'localhost';

O para ver todos los permisos:

SELECT * FROM mysql.user WHERE user='nombre_usuario';

4. Otorgar permisos necesarios

Si el usuario existe pero no tiene permisos, otorgalos:

GRANT ALL PRIVILEGES ON nombre_base_datos.* TO 'usuario'@'localhost';
FLUSH PRIVILEGES;

Para permisos específicos:

GRANT SELECT, INSERT, UPDATE, DELETE ON nombre_base_datos.* TO 'usuario'@'localhost';
FLUSH PRIVILEGES;

5. Verificar host permitido

MySQL puede estar configurado para permitir conexiones solo desde ciertos hosts. Verificá:

SELECT user, host FROM mysql.user WHERE user='nombre_usuario';

Si necesitás permitir conexiones desde cualquier host (no recomendado para producción):

GRANT ALL PRIVILEGES ON nombre_base_datos.* TO 'usuario'@'%';
FLUSH PRIVILEGES;

6. Restablecer contraseña de root

Si olvidaste la contraseña de root, podés restablecerla:

  1. Detené MySQL:
sudo systemctl stop mysql
  1. Iniciá MySQL en modo seguro:
sudo mysqld_safe --skip-grant-tables &
  1. Conectate sin contraseña y cambiá la contraseña:
mysql -u root
USE mysql;
UPDATE user SET authentication_string=PASSWORD('nueva_contraseña') WHERE User='root';
FLUSH PRIVILEGES;
EXIT;
  1. Reiniciá MySQL normalmente.

7. Verificar configuración de phpMyAdmin

Si el error ocurre en phpMyAdmin:

  • Verificá que el archivo config.inc.php tenga las credenciales correctas.
  • Revisá que el usuario tenga permisos para acceder a phpMyAdmin.
  • Limpiá la caché del navegador y probá nuevamente.

Problemas comunes específicos

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

  • Probá con sudo mysql en Linux.
  • O restablecé la contraseña como se explicó arriba.

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

  • El nombre de usuario está vacío. Verificá la configuración de conexión.

Error al conectar desde aplicación web

  • Verificá que el usuario tenga permisos para conectarse desde el host de la aplicación.
  • Revisá la configuración de conexión en tu aplicación.

Consejos de seguridad

  • Nunca uses el usuario root para aplicaciones web.
  • Crea usuarios específicos con permisos limitados.
  • Usa contraseñas seguras y cámbialas periódicamente.
  • Revisa regularmente los permisos de los usuarios.

¿Necesitás ayuda?

Si no podés resolver el error "Access denied", abrí un ticket desde el panel de billing.baires.host o contactanos por soporte.

También podés escribirnos por nuestras redes:

¿Fue útil la respuesta? 0 Los Usuarios han Encontrado Esto Útil (0 Votos)