重启postgres服务器为日志文件中的用户postgres写入致命错误密码验证

时间:2016-12-09 11:14:45

标签: postgresql postgresql-9.3

当我用sudo service postgresql restart重新启动postgresql服务器时,一切都按预期工作。

但是日志文件/var/log/postgresql/postgresql-9.3-main.log表明发生了致命错误。

2016-12-09 11:50:26 CET LOG:  MultiXact member wraparound protections are now enabled
2016-12-09 11:50:26 CET LOG:  autovacuum launcher started
2016-12-09 11:50:26 CET LOG:  database system is ready to accept connections 
2016-12-09 11:50:26 CET FATAL:  password authentication failed for user "postgres"
2016-12-09 11:50:26 CET DETAIL:  Connection matched pg_hba.conf line xx: "local   all             postgres                                md5"
2016-12-09 11:50:27 CET FATAL:  password authentication failed for user "postgres"

我确实使用安全密码设置了postgres超级用户postgres。 我可以用

登录
psql -U postgres

但UNIX用户postgres也设置了登录shell和密码。因此,我通过在/usr/sbin/nologin中设置/etc/passwd来锁定此用户。 我不能再使用

进入UNIX postgres用户了
sudo -u postgres psql postgres

可以登录数据库。

重新启动服务器仍会显示相同的错误消息。

pg_hba.conf中,postgresall的方法设置为md5

我真的不明白服务器在抱怨什么,因为可以建立连接,我可以登录。

非常感谢提前!

1 个答案:

答案 0 :(得分:1)

在pg_hba.conf中设置用户&#34; postgres&#34; as&#34;同行&#34;身份验证或添加到postgres $ HOME目录文件.pgpass中,内容为function unless(test, then) { if (!test) then(); } function repeat(times, body) { for (var i = 0; i < times; i++) body(i); } repeat(3, function(n) { unless(n % 2, function() { console.log(n, "is even"); }); }); // ▹ 0 is even // ▹ 2 is even。文件必须有mod 600。