繁体   English   中英

尝试恢复 .dump 文件 postgres 时权限被拒绝

[英]Permission Denied when trying to restore .dump file postgres

我正在尝试以下命令从 .dump 文件加载架构和数据:

psql proj1 -f /Users/utkarshatri/Desktop/proj1/mymyunsw.dump

但它说许可被拒绝。

在此处输入图片说明

包含 .dump 文件的文件夹对 postgres 具有读写权限

total 101728
drwxr-xr-x@ 4  utkarshatri staff 136      24 Mar 05:41 ./
drwx------@ 23 utkarshatri staff 782      24 Mar 06:18 ../
-rwxrw-rw-@ 1  utkarshatri staff 52080321  8 Mar 00:30 mymyunsw.dump*
-rwxr--r--@ 1  utkarshatri staff 2130      8 Mar 00:30 proj1.sql*

终端上的简单 cat 可以工作,但在 postgres 命令行上返回权限被拒绝在此处输入图片说明

我该如何解决?

任何帮助,将不胜感激。

问题似乎不在于当前目录,而在于上一级的目录:

drwx------@ 23 utkarshatri staff 782      24 Mar 06:18 ../

这表明只有您的用户具有进入项目目录所需的权限。 尝试运行这个

chmod a+rx ../

这将更改权限,以便系统上的任何人都可以打开并查看目录,但仍然只有您可以写入.

我尝试了许多不同的解决方案来还原postgres备份。 我遇到了MacOS上被拒绝的问题,似乎没有解决方案。

这是我如何使其工作的方法:

Postgres带有Pgadmin4。 如果使用macOS,则可以按CMD + SPACE并键入pgadmin4来运行它。 这将在Chrome中打开一个浏览器标签。

如果在使pgadmin4正常工作时遇到错误, killall pgAdmin4在终端中尝试killall pgAdmin4 ,然后重试。


获取pgadmin4 +备份/还原的步骤

1.创建备份

通过右键单击数据库->“备份”来执行此操作

在此处输入图片说明

2.给文件起一个名字。

就像test12345一样。 单击备份。 这将创建一个二进制文件转储,而不是.sql格式

在此处输入图片说明

3.查看下载位置

屏幕的右下角应该有一个弹出窗口。 点击“更多详细信息”页面,查看备份下载到的位置

在此处输入图片说明

4.查找下载文件的位置

在这种情况下,它是/users/vincenttang

在此处输入图片说明

5.从pgadmin恢复备份

假设您正确执行了步骤1到步骤4,您将拥有一个还原二进制文件。 有时您的同事希望在其本地计算机上使用您的还原文件。 说过该人去pgadmin并恢复

通过右键单击数据库->“还原”来执行此操作

在此处输入图片说明

6.选择文件查找器

确保手动选择文件位置,请勿将文件拖放到pgadmin的上载器字段中。 因为您会遇到错误权限。 相反,找到您刚创建的文件:

在此处输入图片说明

7.找到所说的文件

您可能必须将右下角的过滤器更改为“所有文件”。 此后,从第4步中查找文件。现在点击右下角的“选择”按钮以确认

在此处输入图片说明

8.恢复所说的文件

您将再次看到此页面,其中包含选定文件的位置。 继续还原它

在此处输入图片说明

9.成功

如果一切正常,则右下角应弹出一个指示恢复成功的指示器。 您可以导航到表以查看每个表上的数据是否已正确还原。

10.如果不成功:

如果第9步失败,请尝试删除数据库上的旧公共模式。 转到“查询工具”

在此处输入图片说明

执行以下代码块:

DROP SCHEMA public CASCADE; CREATE SCHEMA public;

在此处输入图片说明

现在再次尝试步骤5到9,应该可以解决

摘要

当我遇到错误权限问题并且无法以超级用户身份登录时,这就是我必须在Postgres上备份/还原备份的方式。 或使用chmod为文件夹设置读/写凭据。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM