我的postgresql数据库中有一个pgrouting数据库。所有者是用户,但是当我尝试使用
进行连接时psql -U user pgrouting
发生错误
psql: FATAL: Peer authentication failed for user "user"
如何解决这个问题?
答案 0 :(得分:0)
首先,您似乎误解了“对等身份验证”的本质。我引用the manual here:
对等身份验证方法通过获取客户端来工作 来自内核的操作系统用户名并将其用作允许的 数据库用户名。
系统用户的名称必须与db用户的名称匹配。您没有为此身份验证方法提供具有-U
参数的用户名。事实上,当您以适当的系统用户身份登录时,只需发出:
psql pgrouting
如果端口与默认值不同,则使用更多连接选项,如端口。
接下来,您不应将user
用作实际用户名。它在每个SQL标准和Postgres中都是reserved word。这对每个人来说都很混乱。
如果您想允许使用密码登录,则必须在pg_hba.conf
文件中添加一个条目,允许password
or md5
(preferably) authentication method - 和重新加载。