我已经安装了 PostgreSQL 8.4、Postgres 客户端和 Pgadmin 3。控制台客户端和 Pgadmin 的用户“postgres”的身份验证失败。我输入了用户为“postgres”和密码“postgres”,因为它以前工作过。但现在身份验证失败。我之前做过几次没有这个问题。我该怎么办?会发生什么?
psql -U postgres -h localhost -W Password for user postgres: psql: FATAL: password authentication failed for user "postgres" FATAL: password authentication failed for user "postgres"
如果我没记错的话,默认情况下,用户在 Ubuntu 上postgres没有设置 数据库密码。 这意味着,您只能使用postgres 操作系统用户 帐户登录该帐户。
postgres
假设您可以root访问该框,您可以执行以下操作:
root
sudo -u postgres psql
如果失败并出现database "postgres" does not exists错误,那么您很可能不在 Ubuntu 或 Debian 服务器上 :-) 在这种情况下,只需添加template1到命令中:
database "postgres" does not exists
template1
sudo -u postgres psql template1
如果这些命令中的任何一个因错误而失败,psql: FATAL: password authentication failed for user "postgres"则检查文件/etc/postgresql/8.4/main/pg_hba.conf:必须有这样的行作为第一个非注释行:
psql: FATAL: password authentication failed for user "postgres"
/etc/postgresql/8.4/main/pg_hba.conf
local all postgres ident
对于较新版本的 PostgreSQL,ident实际上可能是peer. 那也没关系。
ident
peer
在psqlshell 中,您可以给 DB 用户 postgres一个密码:
psql
ALTER USER postgres PASSWORD 'newPassword';
您可以通过键入或使用命令离开psqlshell 。Ctrl``D``\q
Ctrl``D``\q
现在您应该能够为 pgAdmin 提供 DB 超级用户的有效密码,它也会很高兴。:-)