You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何正确使用pg_dump执行PostgreSQL数据库迁移遇权限拒绝问题

报错根因
  • 该权限报错与pg_dump命令本身权限无关,由shell输出重定向的权限规则导致:你切换为postgres用户后,当前工作目录为/root或者初始登录普通用户的家目录,postgres用户对该目录没有写入权限,因此执行> file.tar写入输出文件时触发权限拒绝。
验证步骤

在当前postgres用户的bash环境下执行以下命令即可确认:

# 查看当前工作目录
pwd
# 查看当前目录的权限配置
ls -ld .

输出结果会显示当前目录的所有者为root或者你初始登录的普通用户,postgres用户无w写入权限。

解决方案

你可以任选以下任意一种方案解决:

  1. 先切换到postgres用户有权限的目录再执行导出,比如postgres的家目录:
cd ~
pg_dump -F t file > file.tar
  1. 直接指定导出路径到公共可写目录,比如/tmp:
pg_dump -F t file > /tmp/file.tar
# 导出完成后可再将tar包移动到你需要的存储路径
  1. (更推荐)使用pg_dump自带的-f参数指定输出文件,绕开shell重定向的权限校验逻辑:
pg_dump -F t -f 你要存储的目标路径/file.tar file

内容的提问来源于stack exchange,提问作者Louis Castilllo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 06:15:01