我正在使用 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