我使用的是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

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


当前回答

这在我解决这个问题时很管用

我运行sudo -i -u postgress——>来访问我的postgres数据库。

然后输入密码。

它将允许您现在输入PSQL 什么会提示您执行其他命令

干杯!

其他回答

不确定答案中是否已经添加了,Anatolii Stepaniuk的回答非常有帮助,即以下内容。

psql -U Username postgres # when you have no databases yet

这是一个基本的误解。只是打字:

《植物遗传资源》

会得到这样的回应:

pgres <db_name> 

如果用户拥有访问数据库的权限,那么它将成功而不会出错。

我们可以详细了解导出的环境变量,但这是不必要的。这太基本了,不会因为任何其他原因而失败。

有同样的问题,一个简单的psql -d postgres做到了(在终端中键入命令)

正如createdb文档所述:

第一个数据库总是在初始化数据存储区域时由initdb命令创建…这个数据库称为postgres。

因此,如果某些OS/postgresql发行版做的不同,它肯定不是默认的/标准的(刚刚验证了openSUSE 13.1上的initdb创建了DB "postgres",而不是"<user>")。长话短说,当使用“postgres”以外的用户时,预计psql -d postgres将被使用。

显然,可以接受的答案是运行createdb来创建一个与用户同名的DB,这也可以工作,但会创建一个多余的DB。

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

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

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