当我使用Auth0连接heroku postgres数据库时,我收到以下错误。
could not connect to postgres db { [error: no pg_hba.conf entry for host "XXXXXXXX", user "XXXXXX", database "XXXXXX", SSL off]
name: 'error',
length: 161,
severity: 'FATAL',
code: '28000',
detail: undefined,
hint: undefined,
position: undefined,
internalPosition: undefined,
internalQuery: undefined,
where: undefined,
schema: undefined,
table: undefined,
column: undefined,
dataType: undefined,
constraint: undefined,
file: 'auth.c',
line: '496',
routine: 'ClientAuthentication' }
[error] 28000 - undefined
我正在使用Auth0所以请在下面找到带有heroku数据库详细信息和URL的auth0代码。
configuration.config_file = "postgres://username:password@host:port/DB_name"
function login (email, password, callback) {
var conString = configuration.config_file;
postgres(conString, function (err, client) {
if (err) {
console.log('could not connect to postgres db', err);
return callback(err);
}
});
}
答案 0 :(得分:3)
尝试在conString中添加'?ssl = true'。 Heroku需要通过SSL访问远程连接。有关详细信息,请参阅https://devcenter.heroku.com/articles/heroku-postgresql#connecting-in-node-js(在“远程连接”下)。
答案 1 :(得分:2)
您在此处编写的代码在Auth0(在云端)中运行。这意味着您需要使用Auth0可以连接的主机名或IP地址。
如果您使用DBSERVER01
等主机名或10.10.5.1
等IP地址,则这些主机名仅在您的网络中可用,而auth0将无法与您联系。
确保使用网络的公共IP地址(如45.19.3.29
)或面向公众的主机名(如mydb01.mycompany.com
)。
答案 2 :(得分:-2)
从ubuntu网站看一下这个document。它解释了如何在本地安装postgres数据库。
安装postgres后,您需要创建一个用户并进行适当的身份验证。