pg_dump输出文件的"权限被拒绝"

Mos*_*reh 10 database postgresql backup command-line pg-dump

我使用下面的命令来备份我的数据库

sudo -u user_name pg_dump dbName -f /home ..../someWhere/db.sql

但它给了我这个:

pg_dump: [archiver] could not open output file "/home ..../someWhere/db.sql": Permission denied

谷歌搜索此问题后,我发现我必须在/tmp路径下备份我的数据,但不起作用

我该如何解决这个问题?

提前致谢,


我正在使用Ubuntu 12.04 lts

小智 11

尝试pg_dumppsql command-line如下:

postgres=# \! pg_dump dbName -f /home ..../someWhere/db.sql
Run Code Online (Sandbox Code Playgroud)

  • 我从来没有在任何机器上做过这个.它"只是奏效了".改变了什么?我该如何改回来? (2认同)

Gre*_*reg 11

看起来你的pg_dump工作正常,但是在以sudo用户的身份打开输出文件时遇到了问题.只是猜测,但是,如果您以用户(可能是运行pg_dump命令的那个)id进行重定向,那应该这样做,即:

sudo -u user_name pg_dump dbName>/home ..../someWhere/db.sql

使用这种技术,你的pg_dump将作为postgres用户运行(假设是user_name是谁),并且正在/ home ...中写入的文件将使用运行该命令的用户的权限编写(此用户可能具有不同的权限) postgres用户).