协慌网

登录 贡献 社区

psql:严重:数据库 “<用户>” 不存在

我正在使用 Mac 的 PostgreSql 应用程序( http://postgresapp.com/ )。我过去在其他计算机上使用过它,但是在 Macbook 上安装时却给我带来了一些麻烦。我已经安装了应用程序,然后运行:

psql -h localhost

它返回:

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

看来我什至无法运行控制台来创建它要查找的数据库。当我刚运行时,会发生相同的事情:

psql

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

机器统计:

  • OSX 10.8.4

  • psql(PostgreSQL)9.2.4

任何帮助表示赞赏。

我也尝试通过自制软件安装 PostgreSql,但遇到了同样的问题。我还阅读了应用程序文档页面,其中指出:

首次启动 Postgres.app 时,它将创建 $ USER 数据库,该数据库是 psql 的默认数据库(如果未指定任何数据库)。默认用户为 $ USER,没有密码。

因此,似乎该应用程序未创建 $ USER,但是我已经安装了 -> uninstalled-reinstall 了好几次了,所以我的机器上一定有东西。

我找到了答案,但是我不确定作为该线程的答案用户的工作方式 -> 使Postgresql 在 Mac 中运行:数据库 “postgres” 不存在没有得到跟进。我使用以下命令来打开 psql:

psql -d template1

在有人可以提供有关此功能的解释之前,我将不回答这个问题。

答案

您的程序包管理器似乎无法为您创建名为 $ user 的数据库。的原因

psql -d template1

为您工作的原因是 template1 是由 postgres 本身创建的数据库,并且存在于所有安装中。您显然可以登录 template1,因此您必须具有数据库分配的某些权限。在 shell 提示符下尝试以下操作:

createdb

然后查看是否可以使用重新登录

psql -h localhost

这只会为您的登录用户创建一个数据库,我想这就是您要寻找的数据库。如果 createdb 失败,则您没有足够的权限创建自己的数据库,因此您必须弄清楚如何修复自制程序包。

从终端,只需在命令提示符窗口中运行命令。 (不在 psql 中)

createdb <user>

然后尝试再次运行 postgres。

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

psql -U Username DatabaseName