2015-07-10 23 views
0

我正在建立一个网站,并且在恢复数据库.dump文件时遇到了一些麻烦。我使用的是centos7,selinux,postgresql 9.4和apache2。正在恢复.dump文件 - “权限被拒绝”

这是my pg_hba.conf file

enter image description here

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

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

当我这样做,我得到的错误:

Permission denied.

我缺少的东西或有没有办法改变我的设置?如果您需要更多信息,请与我们联系。

谢谢!

+0

您应该发布整个错误消息,因为它是由psql输出的。 –

+0

运行该命令时,您登录了哪些Linux用户?如果你自己给了'psql -U postgres db_name',你能得到一个psql提示吗? – harmic

+0

@Harmic我可以得到一个psql提示符,如果我只是给psql -U postgres db_name本身。我登录的时候我登录 – bluepanda

回答

1

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

请注意,这是而不是必然是您运行的操作系统用户psql as。在这样一种说法:

sudo -u postgres psql mydb < /some/path 

然后/some/path当前用户,sudo之前,而不是用户postgres,因为它是执行的输入重定向,不psql

如果在上面的例子中,你想读的文件作为用户postgres你会:

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

指示psql打开,当它开始读/some/path

+0

当我检查权限与ls -lZ file.dump,我得到以下内容:-rw-r - r--。这是否意味着所有其他用户都拥有读取权限? – bluepanda

+0

我似乎回答了我自己的问题:存储file.dump的目录具有以下权限:drwx ------。我会尝试用chmod来改变它。 – bluepanda

0

只要确保你使用正确的数据库用户,并且您至少阅读转储文件的权限。

“的psql -d -U Postgres的-f”

会工作。