当我用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
来锁定此用户。
我不能再使用
sudo -u postgres psql postgres
可以登录数据库。
重新启动服务器仍会显示相同的错误消息。
在pg_hba.conf
中,postgres
和all
的方法设置为md5
。
我真的不明白服务器在抱怨什么,因为可以建立连接,我可以登录。
非常感谢提前!
答案 0 :(得分:1)
在pg_hba.conf中设置用户" postgres" as"同行"身份验证或添加到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。