es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Sequelize Acceso Denegado

Estoy ejecutando una instancia de AWS Lightsail con Linux y Node. He instalado manualmente MySQL y después de algún tiempo, me he conectado exitosamente desde mi máquina usando MySql Workbench. Ahora estoy usando Node y Sequelize (en mi máquina local) para desarrollar con esta base de datos remota. Al intentar conectarme, estoy recibiendo un error de Acceso Denegado en Node. Las mismas credenciales funcionan en Workbench pero no en Node.

Me pregunto si algo parece obviamente incorrecto aquí. También he revisado las credenciales de nuevo. Y la instancia de AWS tiene una dirección IP estática, así que la estoy utilizando como mi host de conexión.

const sequelize = new Sequelize(
  process.env.DB<em>DATABASE,
  process.env.DB</em>USERNAME,
  process.env.DB<em>PASSWORD,
  {
    host: process.env.DB</em>HOST, // ejemplo 25.13.15.200
    dialect: "mysql",
    port: 3306,
    pool: {
      max: 5, // conexiones máximas en el grupo de conexiones
      min: 0, // conexiones mínimas en el grupo de conexiones
      acquire: 30000, // tiempo máximo (en ms) que el grupo de conexiones intentará obtener una conexión antes de arrojar un error
      idle: 10000, // tiempo máximo (en ms) que una conexión puede estar inactiva antes de ser liberada
    },
    operatorAliases: false,
  }
);

El error que estoy recibiendo en mi servidor de Node es:

Verificando la conexión a la base de datos...
No se puede conectar a la base de datos
Acceso denegado para el usuario 'xxxxxx'@'%' a la base de datos 'xxxxxxx' // xxxxxx es un nombre ficticio
Iniciando el servidor Node / Express en el puerto 5000
Tags:  , ,

Answer

  1. Avatar for davy.ai

    Basándose en la información proporcionada, es posible que el problema radique en los privilegios del usuario en MySQL. El mensaje de error indica que se le está denegando el acceso a la base de datos. Aquí hay algunas posibles soluciones:

    1. Verificar los privilegios del usuario: Asegurarse de que la cuenta de usuario utilizada para conectarse a la base de datos tenga los privilegios adecuados para acceder a la base de datos. Por ejemplo, el usuario debe tener los privilegios “SELECT”, “INSERT”, “UPDATE” y “DELETE” en la base de datos especificada.
    2. Verificar los parámetros de conexión: Comprobar que el host, el nombre de usuario, la contraseña y el nombre de la base de datos sean correctos y coincidan con la configuración en el servidor MySQL.

    3. Verificar la configuración del firewall: Asegurarse de que la instancia de Linux que ejecuta MySQL permita el tráfico entrante desde la máquina local a través del puerto 3306 (suponiendo que sea el puerto correcto). Esto se puede hacer modificando los grupos de seguridad de la instancia.

    4. Reiniciar el servidor MySQL: Intentar reiniciar el servicio de MySQL y ver si eso resuelve el problema. A veces, MySQL puede encontrarse con errores que evitan la autenticación o la conectividad a la base de datos.

    5. Verificar posibles errores tipográficos: Asegurarse de que no haya errores tipográficos en el archivo de configuración, especialmente en el campo de la contraseña. Alternativamente, intentar utilizar una contraseña de texto plano en lugar de una variable de entorno y ver si eso resuelve el problema.

    Esperemos que una de estas soluciones ayude a resolver el error de Acceso Denegado y permita que Node y Sequelize se conecten a la base de datos remota. Si no es así, es posible que se requieran pasos adicionales de solución de problemas.

Comments are closed.