2017-04-15 165 views
0

如果我有/etc/postgresql/9.4/main/pg_hba.conf记录其特别信任我的特定用户错误:密码验证失败的用户“myuser的”

# TYPE DATABASE  USER   ADDRESS     METHOD 
local all    myuser        trust 

由于我在Debian我重新开始喜欢这个

sudo /etc/init.d/postgresql restart 

这里PostgreSQL是我的整个源文件测试了这一点:

const pg = require('pg'); 
const connectionString = "postgres://myuser:[email protected]/mydbname"; 

const client = new pg.Client(connectionString); 
client.connect(); 
const query = client.query('SELECT * FROM USERS'); 
query.on('end',() => { client.end(); }); 

这被错误我一直得到:

error: password authentication failed for user "myuser" 
    at Connection.parseE (/home/myuser/webserver/node_modules/pg/lib/connection.js:539:11) 
    at Connection.parseMessage (/home/myuser/webserver/node_modules/pg/lib/connection.js:366:17) 
    at Socket.<anonymous> (/home/myuser/webserver/node_modules/pg/lib/connection.js:105:22) 
    at emitOne (events.js:96:13) 
    at Socket.emit (events.js:188:7) 
    at readableAddChunk (_stream_readable.js:176:18) 
    at Socket.Readable.push (_stream_readable.js:134:10) 
    at TCP.onread (net.js:551:20) 

这也是值得注意的是,做了以下工作:

psql -h localhost -U myuser mydb 

我在做什么错在这里?

回答

0

由于the documentation状态,local仅用于UNIX套接字连接,而您正在建立到localhost的TCP连接。

使用这样一行:

host all myuser 127.0.0.1/32 trust 

使用IPv4信任来自localhost所有连接(使用对IPv6的ADRESS ::1/128)。

+0

为什么md5不能使用这个? –

+0

它应该很好。检查PostgreSQL服务器日志以查看问题出在哪里。 –

+0

当我将我的密码明文并选择密码作为验证方法时,它会起作用,但是当我将其更改为MD5时,它不起作用。 我也试过在网址中放入md5哈希,并且不起作用。密码url应该是什么样子? –

相关问题