¿Por qué aparece un error Access denied cuando intento conectarme a mi clúster de base de datos de Amazon Aurora?
Quiero autenticarme en mi clúster de Amazon Aurora MySQL-Compatible Edition DB, pero aparece el error «Access denied».
Descripción corta
Para autenticarse en su clúster de base de datos compatible con Aurora MySQL, puede usar una de estas opciones:
- Autenticación de nombre de usuario y contraseña de MySQL.
Para obtener más información, consulte Access Control and Account Management en el sitio web de MySQL. - Autenticación de bases de datos de AWS Identity and Access Management (IAM).
El error «Acceso denegado» suele producirse porque ha introducido un nombre de usuario o contraseña incorrectos. Consulte las siguientes causas de este error:
- El nombre de usuario o la contraseña que ha introducido no son válidos.
- La conexión ha intentado usar el host incorrecto.
- El usuario no existe.
- El usuario existe, pero el host del cliente no tiene permiso para conectarse.
- Se requiere SSL, pero el cliente no usa SSL.
- Bash está convirtiendo los caracteres especiales de la contraseña.
- La autenticación de IAM está desactivada.
- Los permisos de rol de IAM son insuficientes cuando se usa la autenticación de IAM.
- Hay una cadena de conexión incorrecta.
- Se utilizan credenciales de autenticación incorrectas para conectarse al Amazon RDS Proxy. Esto se aplica cuando se usa el modo de nombre de usuario/contraseña nativo.
- El usuario o rol de AWS Identity and Access Management (IAM) que usa el cliente no está autorizado a usar el proxy de Amazon RDS para conectarse. Esto se aplica cuando se utiliza la autenticación de base de datos de IAM.
Para obtener más información sobre este error, consulte la documentación de MySQL para Access denied.
Resolución
Compruebe que la instancia de base de datos acepta conexiones
Confirme que su instancia de base de datos se encuentra actualmente en el estado AVAILABLE. Para obtener más información, consulte la documentación de Amazon Relational Database Service (Amazon RDS) y Aurora para conocer el estado de las instancias de base de datos. Además, consulte ¿Cómo puedo solucionar los problemas de conexión con la instancia de base de datos de Amazon RDS?
Solucionar problemas de conexiones que utilizan credenciales de base de datos
Contraseña incorrecta
Asegúrese de introducir el nombre de usuario y la contraseña correctos cuando intente conectarse a la base de datos. No utilice caracteres especiales en la contraseña. Para obtener más información, consulte ¿Cómo puedo restablecer la contraseña del usuario administrador de mi instancia de base de datos de Amazon RDS?
Nombre de usuario incorrecto
Para comprobar si el usuario existe, ejecute la siguiente consulta:
mysql> SELECT user FROM mysql.user WHERE User='username';
Si el usuario no existe, cree uno nuevo. Para crear un usuario nuevo, ejecute las siguientes consultas:
mysql> CREATE USER 'username'@'%' IDENTIFIED BY 'new-password-here';
mysql> FLUSH PRIVILEGES;
Para obtener más información, consulte Privilegios de la cuenta de usuario maestro.
Conexión desde el host incorrecto
Cuando intente conectarse a la instancia de base de datos, asegúrese de especificar el host y el puerto correctos. Para comprobar el nombre de host y el puerto de Amazon RDS, consulte la página Instancia de la consola de Amazon RDS. Para obtener más información, consulte Conexión a un clúster de base de datos de Amazon Aurora.
El usuario existe pero el host del cliente no tiene permiso para que el cliente se conecte
Para comprobar desde qué usuario/host MySQL permite las conexiones, ejecute la siguiente consulta:
mysql> SELECT host, user FROM mysql.user WHERE User='username';
Para crear un usuario que tenga la IP correcta del cliente host o que tenga el comodín% para que coincida con cualquier dirección IP posible, ejecute la siguiente consulta:
mysql> CREATE USER 'dbuser'@'%' IDENTIFIED BY 'new-password-here';
Se requiere SSL, pero el cliente no usa SSL
Para comprobar si hay usuarios a los que se les ha aplicado SSL, ejecute la siguiente consulta en su instancia de base de datos:
mysql> SELECT * FROM mysql.user WHERE ssl_type <> '';
Si el usuario tiene SSL obligatorio, entonces debe usar SSL para conectarse. Para obtener más información, consulte Uso de SSL/TLS para cifrar una conexión a un clúster de bases de datos.
Usuarios duplicados
Para comprobar si hay usuarios que tienen el mismo nombre de usuario, ejecute la siguiente consulta:
mysql> SELECT host, user FROM mysql.user WHERE User='username';
Para resolver este problema, utilice otro usuario para iniciar sesión o un usuario que tenga permisos para ELIMINAR a otros usuarios. Una vez eliminado el usuario secundario, el primer usuario puede conectarse normalmente.
Para obtener más información, consulte ¿Cómo creo otro usuario administrador para mi instancia de base de datos de Amazon RDS que ejecuta MySQL?
Bash convierte los caracteres especiales de la contraseña
Para evitar que Bash interprete caracteres especiales, escribe la contraseña entre comillas simples.
Un paquete de conexión no contiene la información correcta
El paquete de conexión tarda más de los segundos establecidos en connect_timeout en obtener un paquete de conexión. Para obtener más información, consulte connect_timeout en el sitio web de MySQL. Puede ajustar el valor de este parámetro de base de datos para comprender mejor las consultas y la carga de trabajo.
El valor de la variable max_allowed_packet es demasiado pequeño o las consultas requieren más memoria de la que ha asignado a la instancia de base de datos
El valor max_allowed_packet es pequeño de forma predeterminada. Para obtener más información, consulte max_allowed_packet en el sitio web de MySQL. Esto permite que el valor capture paquetes grandes e incorrectos. Si usa columnas BLOB grandes o cadenas largas, aumente el valor de max_allowed_packet. Para obtener más información, consulte Prácticas recomendadas para configurar los parámetros de Amazon RDS para MySQL.
Solucionar problemas de conexiones que utilizan la autenticación de IAM
Para conectarse, consulte ¿Cómo puedo permitir que los usuarios se autentiquen en una instancia de base de datos de MySQL de Amazon RDS con sus credenciales de IAM?
Si no puede conectarse, consulte ¿Por qué aparece un error de acceso denegado cuando intento conectarme a Amazon RDS para MySQL utilizando la autenticación de IAM?
Solucionar problemas de conexiones que utilizan Amazon RDS Proxy
Para conectarse, consulte How do I use Amazon RDS Proxy to connect to my Amazon RDS for MySQL DB instance or Aurora MySQL-Compatible DB cluster?
Si no puede conectarse, consulte ¿Por qué no puedo conectarme a mi instancia de base de datos de Amazon RDS o Amazon Aurora a través de RDS Proxy?
Información relacionada
Conexión a un clúster de base de datos Amazon Aurora MySQL
Autenticación de bases de datos de IAM para MariaDB, MySQL y PostgreSQL
Contenido relevante
- OFICIAL DE AWSActualizada hace un año
- OFICIAL DE AWSActualizada hace 2 años
- OFICIAL DE AWSActualizada hace 4 años
- OFICIAL DE AWSActualizada hace 2 años