与AWS Postgres SequelizeConnectionError的连接:密码身份验证失败

时间:2019-09-17 10:41:52

标签: node.js postgresql amazon-web-services express sequelize.js

我是AWS和NodeJS / Express服务器的新手。服务器应连接到AWS RDS Postgress数据库。 我正在MacOS上使用Visual Studio Code开发

尝试运行服务器时出现此错误:

Using ts-node version 8.4.1, typescript version 3.6.3
(node:2377) UnhandledPromiseRejectionWarning: SequelizeConnectionError: password authentication failed for user “userNB”
    at connection.connect.err (…node_modules/sequelize/lib/dialects/postgres/connection-manager.js:154:24)
    at Connection.connectingErrorHandler (…..node_modules/pg/lib/client.js:191:14)
    at Connection.emit (events.js:198:13)
    at Connection.EventEmitter.emit (domain.js:448:20)

我将用户名,密码等作为环境变量保存在/.bash_profile

我的Sequelize代码:

import {Sequelize} from 'sequelize-typescript';
import { config } from './config/config';
onst c = config.dev;


export const sequelize = new Sequelize({
  "username": c.username,
  "password": c.password,
  "database": c.database,
  "host":     c.host,

  dialect: 'postgres',
  storage: ':memory:',
});

这种错误与我的NodeJS代码或AWS设置有关吗? 我该如何解决?

2 个答案:

答案 0 :(得分:0)

我正在像这样使用续集,它对我有用:

DATABASE_URI=postgresql://username:password@amazonhost:5432/database_name

export const sequelize = new Sequelize(DATABASE_URI);

还请确保您输入了正确的密码,并且尝试连接的IP已列入数据库白名单。您可以使用postgres客户端cli对此进行测试。

让我知道它是否对您有用。

谢谢!

答案 1 :(得分:0)

您缺少创建新实例的序列化参数。像这样创建一个新的sequelize实例:

const sequelize = new Sequelize('database', 'username', 'password', { host: your_database_host, dialect: /* one of 'mysql' | 'mariadb' | 'postgres' | 'mssql' */ });

有关更多信息,请参见续编文档

https://sequelize.org/master/manual/getting-started.html