Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux psql-U用户pgrouting身份验证失败_Linux_Postgresql_Authentication - Fatal编程技术网

Linux psql-U用户pgrouting身份验证失败

Linux psql-U用户pgrouting身份验证失败,linux,postgresql,authentication,Linux,Postgresql,Authentication,我的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"

如何解决这个问题?

首先,您似乎误解了“对等身份验证”的本质。我引述:

对等身份验证方法通过获取客户端的 内核中的操作系统用户名,并将其用作允许的 数据库用户名

系统用户的名称必须与数据库用户的名称匹配。您没有为此身份验证方法提供带有
-U
参数的用户名。事实上,当您以适当的系统用户身份登录时,只需发布:

psql pgrouting
如果端口与默认值不同,则具有更多连接选项(如端口)

接下来,您不应该使用
user
作为实际用户名。它是每个SQL标准和Postgres中的一个标准。这也让每个人都很困惑


如果您想允许使用密码登录,则必须在
pg_hba.conf
文件中添加一个条目,以允许-并重新加载。

您是否配置了pg_hba.conf文件?我像他的一样编辑了pg_hba.conf.sample#键入数据库用户CIDR-ADDRESS方法本地所有信任[选项]并使用sudo cp/usr/share/postgresql/9.1/pg_hba.conf.sample/etc/postgresql/9.1/main/pg_hba.conf将其复制到pg_hba.conf没有更改您确定数据库中存在用户名用户吗?@Grzegorz:无需重新启动。重新加载就足够了
pg_hba.conf文件在启动时以及主服务器进程接收到SIGHUP信号时读取。
它与sudo一起工作谢谢。。。