我已经在 Ubuntu Server 13.10 上安装了 PostgreSQL 9.1 和 pgadmin3。
我使用以下命令配置了 postgresql.conf:listen_addresses = '*'
我还通过将对等连接更改为来配置 ph_hba.confmd5
另外,我通过以下方式重置了 postgres 的密码:sudo password postgres
然后重新启动服务sudo /etc/init.d/postgresql restart
之后我尝试连接到默认的 PostgreSQL 模板数据库:
sudo -u postgres psql template1
但登录失败并出现以下错误消息:
psql: FATAL: password authentication failed for user "postgres"
然后我尝试从 pgadmin 登录,但出现了同样的错误。
我在这里看到说这可能是密码过期错误 PostgreSQL 用户更改密码后无法连接到服务器
但我无法解决这个问题,因为我无法使用 psql 登录。有人知道如何解决这个问题吗?
编辑
ph_hba 文件:
截屏:
答案1
您混淆了 Unix 用户“postgres”的密码和数据库用户“postgres”的数据库密码。它们并不相同。
您已将自己锁定,因为您启用了md5
数据库用户的身份验证postgres
,但没有为数据库用户设置密码postgres
。
在顶部添加新行pg_hba.conf
:
local postgres postgres peer
然后重新启动/重新加载 PostgreSQL:
/etc/init.d/postgresql reload\
并运行:
sudo -u postgres psql
从结果提示来看:
ALTER USER postgres PASSWORD 'my_postgres_password';
删除你添加的行pg_hba.conf
并再次重新启动 Pg。现在你可以使用上面设置的密码以用户身份连接到 PostgreSQL postgres
。
要了解更多信息,请阅读用户手册的“客户端身份验证”章节和文档pg_hba.conf
。
答案2
尝试使用以下命令修改数据库 template1 的密码:
$ psql -c "ALTER USER postgres WITH PASSWORD 'yourPassword'" -d template1
答案3
在你的 pg_hba.conf 中
# IPv4 local connections:
# TYPE DATABASE USER CIDR-ADDRESS METHOD
host all all 127.0.0.1/32 trust
如果不起作用,请尝试
host all all your_ip/32 trust
然后重新启动数据库,它将正常工作..如果您信任,则不需要密码,如果您创建 MD5,那么它会询问密码...