2013-02-13 80 views
5

我在本地机器上安装了Postgres。psql:FATAL:角色“postgres”不存在(使用-h localhost选项)

当我执行

psql -U postgres -d buzzsumo 

它正确地询问我的密码给用户的Postgres。

然而,当我运行

psql -U postgres -d buzzsumo -h localhost 

它给了我这个错误消息:

PSQL:FATAL:角色 “Postgres的” 不存在

这是为什么了情况下,当我在第一个例子中连接到我的本地服务器,这相当于传递本地主机?

回答

2

你不说,但我猜你正在MacOS或Linux上运行postgres。

第一种形式(不带-h)通过“unix套接字”连接。第二种形式,使用“-h localhost”通过TCP/IP连接到本地主机(IP地址127.0.0.1)。

Postgres以不同的方式处理这两种类型的连接 - 或者至少可以这样做。如果您检查“pgsql/data/pg_hba.conf”文件以查看为这两种类型的连接配置了哪些认证机制。

2

您的第一个示例通过Unix套接字连接,第二个示例通过TCP/IP本地环路(localhost)连接。

对于第一个示例,您需要local中的连接类型pg_hba.conf,对于以host开头的第二行是相关的。您可能已经为这些连接类别定义了不同的authentication methods

相关问题