我使用下面的命令来备份我的数据库
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
尝试pg_dump
从psql command-line
如下:
postgres=# \! pg_dump dbName -f /home ..../someWhere/db.sql
看起来你的pg_dump工作正常,但是在以sudo用户的身份打开输出文件时遇到了问题.只是猜测,但是,如果您以用户(可能是运行pg_dump命令的那个)id进行重定向,那应该这样做,即:
sudo -u user_name pg_dump dbName>/home ..../someWhere/db.sql
使用这种技术,你的pg_dump将作为postgres用户运行(假设是user_name是谁),并且正在/ home ...中写入的文件将使用运行该命令的用户的权限编写(此用户可能具有不同的权限) postgres用户).