我用下面的命令来备份我的数据库
sudo -u user_name pg_dump dbName -f/home ..../someWhere/db.sql
但它给了我这个:
pg_dump:[archiver] 无法打开输出文件“/home ..../someWhere/db.sql”:权限被拒绝
在谷歌搜索这个问题后,我发现我必须在 /tmp
路径下备份我的数据,但不起作用
我该如何解决这个问题?
提前致谢,
我正在使用 Ubuntu 12.04lts
最佳答案
看起来您的 pg_dump 工作正常,但以 sudo 用户身份打开输出文件时遇到问题。只是猜测,但是,如果您作为用户(大概是运行 pg_dump 命令的用户)id 进行重定向,那么应该这样做,即:
sudo -u user_name pg_dump dbName >/home ..../someWhere/db.sql
使用这种技术,您的 pg_dump 将作为 postgres 用户运行(假设 user_name 是谁),并且正在写入/home 的文件...将使用运行命令的用户的权限写入(该用户可能有不同于 postgres 用户的权限)。
关于database - "permission denied"用于 pg_dump 输出文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21457456/