我试图用我的Windows机器上的postgres用户登录到Pgadmin的服务器.
但它一直给我这个错误:
psql: FATAL:  password authentication failed for user "postgres"
Run Code Online (Sandbox Code Playgroud)
那么我尝试使用psql从命令行登录,这给了我同样的错误.然后,在将pg_hba.conf中的本地条目置于信任之后,我使用psql将密码重置为'test'.然后我将条目放回md5,并尝试使用密码'test'登录.
在psql中我使用了以下命令:
ALTER ROLE postgres WITH PASSWORD 'test';
ALTER ROLE postgres PASSWORD 'test';
ALTER USER postgres WITH PASSWORD 'test';
ALTER USER postgres PASSWORD 'test';
Run Code Online (Sandbox Code Playgroud)
而这个特殊的psql命令
\password
Run Code Online (Sandbox Code Playgroud)
每次,我都将pg_hba.conf本地条目返回到md5,并尝试使用psql登录:
psql -U postgres
Run Code Online (Sandbox Code Playgroud)
然后我被要求输入密码.输入'test'后,psql给出了与前面提到的相同的错误.
当然,我在每次更改pg_hba文件后重新启动postgresql.我正在使用psql和'su postgres'.
因此,即使我能够以通常的方式更改密码,也不接受密码.
我希望有人能够帮助我.
一些信息:
Postgresql 9.1 Ubuntu 12.04
Pg_hba文件(根据要求)
local   all             postgres                                md5
local   all             all                                     md5
# IPv4 local connections:
host    all             all             127.0.0.1/32            md5
# IPv6 local connections:
host    all             all             ::1/128                 md5
host    all             all             <my-ip-address>/32        md5
Run Code Online (Sandbox Code Playgroud)
当我想修改密码时,我将顶部的md5更改为trust.我想提一下,这种配置之前没有问题.
结果
sudo -u postgres psql -x -c "select * from pg_user where usename='postgres'"
Run Code Online (Sandbox Code Playgroud)
是:
usename     | postgres
usesysid    | 10
usecreatedb | t
usesuper    | t
usecatupd   | t
userepl     | t
passwd      | ********
valuntil    | 1970-01-01 00:00:00+01
useconfig   |
Run Code Online (Sandbox Code Playgroud)
    Dan*_*ité 74
如最新编辑所示,密码有效期至1970年,这意味着它目前无效.这解释了错误消息,这与密码不正确相同.
重置有效期:
ALTER USER postgres VALID UNTIL 'infinity';
Run Code Online (Sandbox Code Playgroud)
在最近的一个问题中,另一个用户遇到了与用户帐户和PG-9.2相同的问题:
显然,有一种方法可以无意中为Unix时代设置伪造的密码有效性(1970年1月1日,该abstime类型的最小可能值).可能,PG本身或某些客户端工具中存在一个会导致这种情况的错误.
编辑:它原来是一个pgadmin错误.请参阅https://dba.stackexchange.com/questions/36137/
pg_hba.confentry按IP地址定义登录方法.您需要显示相关部分pg_hba.conf才能获得适当的帮助.
改变这一行:
host    all             all             <my-ip-address>/32        md5
Run Code Online (Sandbox Code Playgroud)
反映您的本地网络设置.所以,如果你的IP是192.168.16.78(C类)掩码为255.255.255.0,那么把它:
host    all             all             192.168.16.0/24        md5
Run Code Online (Sandbox Code Playgroud)
确保您的WINDOWS MACHINE在该网络中,192.168.16.0然后重试.
小智 8
我遇到了这个问题,这里的答案对我不起作用; 我无法弄清楚为什么我无法登录并得到上述错误.
事实证明postgresql将用户名保存为小写,但在身份验证期间它使用大写和小写.
CREATE USER myNewUser WITH PASSWORD 'passWord';
Run Code Online (Sandbox Code Playgroud)
将使用用户名"mynewuser"和密码"passWord"创建用户.
这意味着您必须使用"mynewuser"进行身份验证,而不是使用"myNewUser"进行身份验证.对于像我这样的pgsql中的新手,这很令人困惑.我希望它可以帮助遇到这个问题的其他人.
|   归档时间:  |  
           
  |  
        
|   查看次数:  |  
           126729 次  |  
        
|   最近记录:  |