sql - 如何正确使用 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
解决方案
您缺少的权限是在当前目录中创建转储文件的权限。
原因是如果您使用so postgres
,您将保留在以前的工作目录中(大概是/root
),并且用户postgres
没有权限在那里创建文件。
使用-
选项:
su - postgres`
这将启动一个登录 shell 并将您放入postgres
的主目录。
推荐阅读
- mysql - maraidb 填写缺失的小时、分钟间隔
- loops - 跨列添加第一个非缺失观察
- php - PHP - 按类别名称对对象数组进行排序和排序
- flutter - Flutter:在创建新的模拟器时,它显示错误,因为没有可用的设备定义,为什么会这样?
- mysql - 过滤MYSQL数据库中的聚合值
- r - plm 包中的滞后函数返回 NA 而不是滞后值
- excel - 使用 vba 从 Google Maps API 获取数据
- visual-studio - 如何在 Visual Studio 2017 中将 Ctrl+C 更改为复制 Word,而不是整行
- php - 添加行时如何获取表列的值
- linux - 意外的行尾 - dos2unix 不会修复它