首页 > 解决方案 > 如何正确使用 pg_dump 进行数据库迁移?

问题描述

大家好,我对在 Postgre sql 中执行 pg_dump 还是很陌生。我已经登录到服务器并以 postgres 用户身份运行。我尝试运行 pg_dump 以进行数据库迁移,但我不断收到“Permission Denied”提示。我相信我拥有最高权限并且应该能够运行它。我在终端中的语法有问题吗?将不胜感激。

问题:

*

[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 内存

英特尔 I7 处理器

操作系统:

macOS 大苏尔 11.5.2

标签: sqlpostgresqlmacosterminaldatabase-migration

解决方案


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

原因是如果您使用so postgres,您将保留在以前的工作目录中(大概是/root),并且用户postgres没有权限在那里创建文件。

使用-选项:

su - postgres`

这将启动一个登录 shell 并将您放入postgres的主目录。


推荐阅读