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

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


当前回答

在终端上,只需运行命令提示窗口上的命令。(不在psql内部)。

createdb <user>

然后再试着运行postgres。

其他回答

以默认用户登录:sudo -i -u postgres 创建新用户:createuser—interactive 当提示输入角色名时,输入linux用户名,对超级用户问题选择“是”。 仍然以postgres用户登录,创建数据库:createdb <username_from_step_3> 在命令提示符下输入:psql,确认错误已经消失。 输出应该显示psql (x.x.x)输入“help”以获取帮助。

使用默认template1数据库登录:

#psql -d template1
#template1=# \l

  List of databases
   Name    |  Owner  | Encoding |   Collate   |    Ctype    |  Access privileges  
-----------+---------+----------+-------------+-------------+---------------------
 postgres  | gogasca | UTF8     | en_US.UTF-8 | en_US.UTF-8 | 
 template0 | gogasca | UTF8     | en_US.UTF-8 | en_US.UTF-8 | =c/gogasca         +
           |         |          |             |             | gogasca=CTc/gogasca
 template1 | gogasca | UTF8     | en_US.UTF-8 | en_US.UTF-8 | =c/gogasca         +
           |         |          |             |             | gogasca=CTc/gogasca
(3 rows)

用你的userId创建一个数据库:

template1=# CREATE DATABASE gogasca WITH OWNER gogasca ENCODING 'UTF8';
CREATE DATABASE

退出,然后再次登录

template1=# \q
gonzo:~ gogasca$ psql -h localhost
psql (9.4.0)
Type "help" for help.

gogasca=# \l
                                List of databases
   Name    |  Owner  | Encoding |   Collate   |    Ctype    |  Access privileges  
-----------+---------+----------+-------------+-------------+---------------------
 gogasca   | gogasca | UTF8     | en_US.UTF-8 | en_US.UTF-8 | 
 postgres  | gogasca | UTF8     | en_US.UTF-8 | en_US.UTF-8 | 
 template0 | gogasca | UTF8     | en_US.UTF-8 | en_US.UTF-8 | =c/gogasca         +
           |         |          |             |             | gogasca=CTc/gogasca
 template1 | gogasca | UTF8     | en_US.UTF-8 | en_US.UTF-8 | =c/gogasca         +
           |         |          |             |             | gogasca=CTc/gogasca
(4 rows)

通过现有的超级用户连接到postgres。

用连接到postgres的用户名创建一个数据库。

create database username;

现在尝试通过用户名连接

由于这个问题是搜索结果中的第一个问题,我将在这里针对不同的问题提出不同的解决方案,以免出现重复的标题。

在psql中运行查询文件而不指定数据库时,也会出现相同的错误消息。由于postgresql中没有use语句,我们必须在命令行中指定数据库,例如:

psql -d db_name -f query_file.sql

在使用自制程序安装postgresql之后,我仍然存在上面的问题-我通过将/usr/local/bin放在/usr/bin之前来解决这个问题