首页 > 解决方案 > AWS Elastic Beanstalk 未在 LIVE 上连接到 RDS(在 Localhost 上工作)

问题描述

我有一个托管在 Elastic Beanstalk 上的 Node/Express 应用程序,它也与 MySQL RDS 交互。

我能够在 localhost 和使用 SSH 上成功连接到数据库。

在现场,连接到数据库的路由不连接。日志有以下错误:

Jul  9 00:49:34 ip-172-31-0-183 web: (node:16716)
UnhandledPromiseRejectionWarning: Error: Access denied for user 'darcy'@'172.31.0.183' (using password: YES)

我怀疑该错误是由于我对 VPC 的安全设置造成的。我已按照此处的说明进行操作:https ://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_VPC.WorkingWithRDSInstanceinaVPC.html 。但是,似乎无法解决问题!?

作为参考,这是尝试连接到数据库的代码:

const mysql = require('mysql2/promise');

const db = async (sqlQuery) => {
  const data = await mysql
    .createConnection({
      host: process.env.RDS_HOSTNAME,
      user: process.env.RDS_USERNAME,
      password: process.env.RDS_PASSWORD,
      port: process.env.RDS_PORT,
      database: process.env.RDS_DB_NAME,
    })
    .then((conn) => conn.query(sqlQuery))
    .then(([rows, fields]) => {
      return rows;
    });

  return data;
};

标签: amazon-web-servicesamazon-elastic-beanstalkamazon-rds

解决方案


推荐阅读