首页 > 解决方案 > 未处理的拒绝 SequelizeConnectionError:用户“ankitj”的密码验证失败

问题描述

即使 .env 文件中指定的数据库用户不同,也会发生这种情况。作为记录,“ankitj”也是我系统的用户名。我不明白为什么会这样。

这是错误:

Unhandled rejection SequelizeConnectionError: password authentication failed for user "ankitj"
    at connection.connect.err (/home/ankitj/Desktop/skillbee/node_modules/sequelize/lib/dialects/postgres/connection-manager.js:128:24)
    at Connection.connectingErrorHandler (/home/ankitj/Desktop/skillbee/node_modules/pg/lib/client.js:140:14)
    at Connection.emit (events.js:160:13)
    at Socket.<anonymous> (/home/ankitj/Desktop/skillbee/node_modules/pg/lib/connection.js:124:12)
    at Socket.emit (events.js:160:13)
    at addChunk (_stream_readable.js:269:12)
    at readableAddChunk (_stream_readable.js:256:11)
    at Socket.Readable.push (_stream_readable.js:213:10)
    at TCP.onread (net.js:599:20)

标签: node.jspostgresqlsequelize.js

解决方案


我假设您在使用带有 Node.js 的 Sequelize 时遇到此错误。当我遇到以下错误时,我遇到了同样的错误:

const sequelize = new Sequelize(
  process.env.DATABASE,
  process.env.DATABASE_USER,
  process.env.DATABASE_PASSWORD,
  {
    dialect: 'postgres',
  }
)

我能够通过用连接 ur替换它来解决问题:

const sequelize = new Sequelize("postgres://postgres:postgres@localhost/gql", {
  dialect: 'postgres'
  // anything else you want to pass
})

我的文件gql中的名称在哪里。DATABASE.env

用户“ankitj”执行命令以运行 Node 脚本,因此该脚本正在尝试以该用户身份进行连接。我首先尝试在 Postgres 端通过添加用户并授予权限来解决此问题,但无法使其正常工作——我有兴趣查看该解决方案——但指定连接 url 对我有用。


推荐阅读