我的 postgresql 数据库中有一个 pgrouting 数据库。所有者是用户,但是当我尝试使用连接时
psql -U user pgrouting
发生错误
psql: FATAL: Peer authentication failed for user "user"
如何解决这个问题?
我的 postgresql 数据库中有一个 pgrouting 数据库。所有者是用户,但是当我尝试使用连接时
psql -U user pgrouting
发生错误
psql: FATAL: Peer authentication failed for user "user"
如何解决这个问题?
首先,您似乎误解了“对等身份验证”的性质。我在这里引用手册:
对等身份验证方法通过从内核获取客户端的操作系统用户名并将其用作允许的数据库用户名来工作。
系统用户的名称必须与 db 用户的名称匹配。您没有-U
为此身份验证方法的参数提供用户名。事实上,当您以适当的系统用户身份登录时,只需发出:
psql pgrouting
如果它们与默认值不同,则使用更多连接选项,例如端口。
接下来,您不应将user
其用作实际用户名。它是每个 SQL 标准和 Postgres 中的保留字。这也让每个人都非常困惑。
如果要允许使用密码登录,则必须在pg_hba.conf
文件中添加一个条目,以允许使用password
或md5
(最好)身份验证方法- 并重新加载。