Java postgres/libpqxx:拒绝通过密码进行身份验证

Java postgres/libpqxx:拒绝通过密码进行身份验证,java,c++,postgresql,libpq,libpqxx,Java,C++,Postgresql,Libpq,Libpqxx,我在大学里使用了两个工具,它们都使用同一个postgres数据库。 用Java编写的一个使用jdbc驱动程序,工作正常 《C++》第二篇有一定的难度。它给了我以下的错误 Ident authentication failed for user "xyz" 连接字符串如下所示 dbname=myDB user=xyz hostaddr=127.0.0.1 port=5432 connect_timeout=10 password=myPW 我检查了10次,两个应用程序中的值完全相同。我想可能是

我在大学里使用了两个工具,它们都使用同一个postgres数据库。 用Java编写的一个使用jdbc驱动程序,工作正常

《C++》第二篇有一定的难度。它给了我以下的错误

Ident authentication failed for user "xyz"
连接字符串如下所示

dbname=myDB user=xyz hostaddr=127.0.0.1 port=5432 connect_timeout=10 password=myPW
我检查了10次,两个应用程序中的值完全相同。我想可能是pg_hba.cfg。所以我做了很多尝试,终于打开了所有的门:

# TYPE  DATABASE        USER            ADDRESS                 METHOD

# "local" is for Unix domain socket connections only
local   all             all             trust
local   all             postgres        ident
local   all             all             password
# IPv4 local connections:
host    all             all             192.168.185.0/24        trust
host    all             postgres        127.0.0.1/32            ident
host    all             all             127.0.0.1/32            trust
# IPv6 local connections:
host    all             all             ::1/128                 ident
<>怎么可能,C++工具总是尝试使用缩进认证方法,尽管给出了密码。(还是db…)
libpqxx中有什么特殊情况需要我注意吗?

我想你是说当你写
ident
时,你的意思是
peer
<在
本地连接上的code>ident
没有什么意义。然而,这条线并不匹配

<>怎么可能,C++工具总是尝试使用缩进验证方法,尽管给出了密码。(或者是db…?)在libpqxx中是否有任何特殊情况需要注意

数据库服务器选择auth方法,并要求客户端使用所需的方法进行身份验证

密码是未使用的,如果服务器不要求密码,甚至从未发送到服务器,如
ident
authentication。如果需要密码身份验证,请将服务器设置为请求
md5
身份验证方法


我最近在邮件列表中建议,
libpq
在提供密码但由于服务器配置而被忽略时应发出
警告。我还没有说服任何人这是一个好主意。

将方法设置为md5没有任何区别。java工具仍然有效,另一个工具又在抱怨ident。你认为匹配的线路错了吗?atm应该匹配ipv4设置下的第三条线路,对吗?