如何正确使用 pg_dump 来进行数据库迁移?

How to use pg_dump correctly in order to do a database migration?

大家好,我对在 Postgre sql 中做 pg_dump 还很陌生。我已经登录到服务器并以 postgres 用户身份 运行ning。我尝试 运行 pg_dump 以进行数据库迁移,但我不断收到“权限被拒绝”提示。我相信我有最高权限,应该可以 运行 这个。我在终端中的语法有问题吗?非常感谢您的帮助。

问题:

*

[user@dfhsdaf07 ~]$ sudo su
[root@dfhsdaf07 user]# su postgres
bash-4.2$ pg_dump -F t file > file.tar
bash: file.tar: Permission denied
bash-4.2$ pg_dump -F t file >./file.tar
bash: ./file.tar: Permission denied

系统信息:

MacBook Pro 2015

16 GB 内存

Intel I7 处理器

OS:

macOS 大苏尔 11.5.2

您缺少的权限是在当前目录中创建转储文件的权限。

原因是如果你使用so postgres,你还停留在之前的工作目录下(大概是/root),用户postgres没有创建文件的权限那里。

使用-选项:

su - postgres`

这将开始登录 shell 并将您带到 postgres 的主目录。