关于linux:获取’psql:FATAL:数据库’forum.sql“不存在”错误

Getting 'psql: FATAL: database “forum.sql” does not exist' Error

我目前正在运行Linux Mint 17.2 XFCE,目前正在将Udacity Intro引入关系数据库课程。 几天前,我安装了PostGreSQL作为该程序的一部分。 课程的一部分涉及下载VM并通过Vagrant连接到它以在Linux上运行,但我已经运行了linux,所以我只是下载了Vagrant以访问随附的'forum.sql'文件而且是 其中一个练习的一部分。

但是每当我尝试使用该命令运行forum.sql时

1
psql forum.sql

我得到的只是

1
psql: FATAL:  DATABASE"forum.sql" does NOT exist

错误。 尽管如此,我显然在正确的目录中。 当我在vagrant / forum目录中输入'ls'时,它清楚地显示了forum.sql。

我究竟做错了什么?


PostgreSQL不对文件进行操作。 当您运行"psql"时,它通过某种网络连接到服务。

它连接的是数据库服务,psql抱怨你告诉它使用的数据库的名称不存在。

您可能认为要评估文件的内容,并且可以这样做,但必须先连接到数据库。 如果您在过去运行"createdb",那么您创建了一个数据库,这应该是"psql"之后的第一个参数,而不是某个文件名。 如果未指定数据库名称,则它将连接到与linux用户名同名的数据库(如果已创建)。

如果您可以按照自己的意愿进行连接,并且已经验证了它,那么您可以让psql在数据库名称之前使用"-f"读取您使用的文件,然后读取文件名。

其中一个可能是正确的:

1
2
$ psql -f forum.sql databasename
$ psql -f forum.sql