2017-04-15 166 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應該是什麼樣子? –

相關問題