1

我正在建立一个网站,但在恢复数据库 .dump 文件时遇到了一些问题。我正在使用 centos7、selinux、postgresql 9.4 和 apache2。

这是我的 pg_hba.conf 文件

在此处输入图像描述

这是我试图移动转储的命令:

psql --single-transaction -U postgres db_name < dump_location

当我这样做时,我收到错误:

没有权限。

我错过了什么还是有什么我应该改变我的设置?如果您需要更多信息,请与我们联系。

谢谢!

4

2 回答 2

1

您运行 shell 的操作系统用户没有读取路径的权限dump_location

请注意,这不一定是您运行的操作系统用户psql。在这样的声明中:

sudo -u postgres psql mydb < /some/path

then/some/path被读取为当前用户, beforesudo,而不是 user postgres,因为它是执行输入重定向的shellpsql ,而不是.

如果在上面的示例中,您想以用户身份读取文件,postgres您将:

sudo -u postgres psql -f /some/path mydb

指示在启动时psql打开和阅读/some/path

于 2015-07-11T07:06:13.493 回答
0

只需确保您使用的是正确的数据库用户,并且您至少对转储文件具有读取权限。

“psql -d -U postgres -f”

将工作。

于 2015-07-16T00:17:39.750 回答