![](/img/trans.png)
[英]How to restore PostgreSQL dump file into Postgres databases?
[英]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
,然后重试。
通过右键单击数据库->“备份”来执行此操作
就像test12345
一样。 单击备份。 这将创建一个二进制文件转储,而不是.sql
格式
屏幕的右下角应该有一个弹出窗口。 点击“更多详细信息”页面,查看备份下载到的位置
在这种情况下,它是/users/vincenttang
假设您正确执行了步骤1到步骤4,您将拥有一个还原二进制文件。 有时您的同事希望在其本地计算机上使用您的还原文件。 说过该人去pgadmin并恢复
通过右键单击数据库->“还原”来执行此操作
确保手动选择文件位置,请勿将文件拖放到pgadmin的上载器字段中。 因为您会遇到错误权限。 相反,找到您刚创建的文件:
您可能必须将右下角的过滤器更改为“所有文件”。 此后,从第4步中查找文件。现在点击右下角的“选择”按钮以确认
您将再次看到此页面,其中包含选定文件的位置。 继续还原它
如果一切正常,则右下角应弹出一个指示恢复成功的指示器。 您可以导航到表以查看每个表上的数据是否已正确还原。
如果第9步失败,请尝试删除数据库上的旧公共模式。 转到“查询工具”
执行以下代码块:
DROP SCHEMA public CASCADE; CREATE SCHEMA public;
现在再次尝试步骤5到9,应该可以解决
当我遇到错误权限问题并且无法以超级用户身份登录时,这就是我必须在Postgres上备份/还原备份的方式。 或使用chmod
为文件夹设置读/写凭据。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.