我使用的是mac版PostgreSql应用(http://postgresapp.com/)。我以前在其他机器上用过,但在我的macbook上安装时遇到了一些麻烦。我已经安装了应用程序,并运行:

psql -h localhost

它返回:

psql: FATAL:  database "<user>" does not exist

似乎我甚至不能运行控制台来创建它试图找到的数据库。当我跑步时,同样的事情也会发生:

psql 

或者如果我从应用程序下拉菜单启动psql:

机统计数据:

OSX 10.8.4 发生冲突

任何帮助都是感激的。

我也尝试过通过自制程序安装PostgreSql,我也遇到了同样的问题。我还读了申请文档页面,上面写着:

当Postgres。app首先启动,它创建$USER数据库, 当没有指定时,它是PSQL的默认数据库。的 默认用户为$ user,没有密码。

因此,似乎应用程序没有创建$USER,但我已经安装->卸载-重新安装了几次,所以它必须与我的机器。

我找到了答案,但我不确定它是如何工作的,因为在这个线程上回答的用户->让Postgresql在Mac中运行:数据库“postgres”不存在,没有跟进。我使用下面的命令来打开psql:

psql -d template1

我不回答这个问题,直到有人能解释为什么这样做。


当前回答

似乎您的包管理器未能为您创建名为$user的数据库。原因是

psql -d template1

template1是postgres自己创建的数据库,在所有安装中都有。 显然,您可以登录到template1,因此您必须拥有数据库分配给您的一些权限。在shell提示符下试试这个:

createdb

然后看看你能不能再登录

psql -h localhost

这将简单地为您的登录用户创建一个数据库,我认为这是您正在寻找的。如果createdb失败了,那么您就没有足够的权限来创建自己的数据库,并且必须弄清楚如何修复自制程序包。

其他回答

似乎您的包管理器未能为您创建名为$user的数据库。原因是

psql -d template1

template1是postgres自己创建的数据库,在所有安装中都有。 显然,您可以登录到template1,因此您必须拥有数据库分配给您的一些权限。在shell提示符下试试这个:

createdb

然后看看你能不能再登录

psql -h localhost

这将简单地为您的登录用户创建一个数据库,我认为这是您正在寻找的。如果createdb失败了,那么您就没有足够的权限来创建自己的数据库,并且必须弄清楚如何修复自制程序包。

通过自制程序安装postgresql时遇到这个问题。

必须创建默认的“postgres”超级用户:

Createuser—交互postgres回答超级用户y Createuser—交互用户,回答y为超级用户

您可以在env变量PGDATABASE=database_name中设置要连接的数据库名称。如果你不设置这个psql默认的数据库名称是用户名。设置后,你不需要createdb

postgres安装后,在我的情况下,版本是12.2,我确实运行了下面的命令createdb。

$ createdb `whoami`

$ psql

psql (12.2)
Type "help" for help.

macuser=# 

默认情况下,postgres尝试连接到与您的用户同名的数据库。要防止这种默认行为,只需指定用户和数据库:

psql -U Username DatabaseName