Windows Knex-错误:用户“的密码身份验证失败”;约书亚·里斯;
我正在用Knex构建我的PostgreSQL数据库,当我运行Windows Knex-错误:用户“的密码身份验证失败”;约书亚·里斯;,windows,postgresql,npm,knex.js,pg,Windows,Postgresql,Npm,Knex.js,Pg,我正在用Knex构建我的PostgreSQL数据库,当我运行Knex migrate:latest时,我一直遇到这个错误 error: password authentication failed for user "Joshua Rieth" at Parser.parseErrorMessage (C:\Users\Joshua Rieth\Documents\Projects\Lambda\Labs\homerun-be\node_modules\pg-prot
Knex migrate:latest
时,我一直遇到这个错误
error: password authentication failed for user "Joshua Rieth"
at Parser.parseErrorMessage (C:\Users\Joshua Rieth\Documents\Projects\Lambda\Labs\homerun-be\node_modules\pg-protocol\dist\parser.js:278:15)
at Parser.handlePacket (C:\Users\Joshua Rieth\Documents\Projects\Lambda\Labs\homerun-be\node_modules\pg-protocol\dist\parser.js:126:29)
at Parser.parse (C:\Users\Joshua Rieth\Documents\Projects\Lambda\Labs\homerun-be\node_modules\pg-protocol\dist\parser.js:39:38)
at Socket.<anonymous> (C:\Users\Joshua Rieth\Documents\Projects\Lambda\Labs\homerun-be\node_modules\pg-protocol\dist\index.js:8:42)
at Socket.emit (events.js:315:20)
at addChunk (_stream_readable.js:295:12)
at readableAddChunk (_stream_readable.js:271:9)
at Socket.Readable.push (_stream_readable.js:212:10)
at TCP.onStreamRead (internal/stream_base_commons.js:186:23)
错误:用户“Joshua Rieth”的密码身份验证失败
在Parser.parseErrorMessage(C:\Users\Joshua Rieth\Documents\Projects\Lambda\Labs\homerun be\node\u modules\pg protocol\dist\Parser.js:278:15)
位于Parser.handlePacket(C:\Users\Joshua Rieth\Documents\Projects\Lambda\Labs\homerun be\node\u modules\pg protocol\dist\Parser.js:126:29)
在Parser.parse(C:\Users\Joshua Rieth\Documents\Projects\Lambda\Labs\homerun be\node\u modules\pg protocol\dist\Parser.js:39:38)
在插座上。(C:\Users\Joshua Rieth\Documents\Projects\Lambda\Labs\homerun be\node\u modules\pg protocol\dist\index.js:8:42)
在Socket.emit(events.js:315:20)
在addChunk(_stream_readable.js:295:12)
在readableAddChunk(_stream_readable.js:271:9)
在Socket.Readable.push(_stream_Readable.js:212:10)
在TCP.onStreamRead(internal/stream_base_commons.js:186:23)
我假设这与我的用户名有关,但它应该是我在设置PostgreSQL时使用的默认postges
用户。我还应该提到,用户和密码位于.env文件中
规格
- PostgreSql 12
- 视窗10
- NPM 6.14.6
- 第8.3.0页
- knex 0.20.15
require('knex')({
client: 'pg',
connection: 'postgres://username:password@localhost:5432/dbname'
})
或者,您可以设置环境变量PGUSER和PGPASSWORD,Knex连接也会选择这些变量
您的连接
也可以配置完整的详细信息,而不是链接:
var knex = require('knex')({
client: 'pg',
version: '12.0',
connection: {
host : '127.0.0.1',
user : 'your_database_user',
password : 'your_database_password',
database : 'myapp_test'
}
});
要从实际代码中排除您的用户名/密码,我强烈建议您使用类似于dotenv
package的东西:
(注意:下面不是关于您的具体错误,因为您的用户名没有正确指定)另一件我想在Pg端检查的事情是您已经在Pg_hba.conf
中启用了密码身份验证。md5方法允许基于密码哈希的身份验证,这应该对您有好处。应该是这样的:
# TYPE DATABASE USER CIDR-ADDRESS METHOD
host all all 123.123.123.123/32 md5