Java postgres/libpqxx:拒绝通过密码进行身份验证
我在大学里使用了两个工具,它们都使用同一个postgres数据库。 用Java编写的一个使用jdbc驱动程序,工作正常 《C++》第二篇有一定的难度。它给了我以下的错误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次,两个应用程序中的值完全相同。我想可能是
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设置下的第三条线路,对吗?