【问题标题】:pg_upgrade oldbindir check failspg_upgrade oldbindir 检查失败
【发布时间】:2016-05-31 04:59:37
【问题描述】:

我正在尝试将 postgresql 数据库从 9.1 升级到 9.4。我运行9.4版本的pg_upgrade如下:

sudo -u postgres pg_upgrade -b <path>/postgres/9.1/bin -B <path>/postgres/9.4/bin -d <path>/9.1DBs/ -D <path>/<empty folder>

我明白了:

check failed for: <path>/postgres/9.1/bin Permission denied

文件夹存在,我将权限设置为777,甚至给了postgres用户对目录结构的所有权,但我仍然得到同样的错误。

以详细模式运行不提供任何额外信息。 包含旧二进制文件的分区安装在 /media/ 下,我具有读/写访问权限。

有什么可能导致这种情况的想法吗?

【问题讨论】:

  • postgres 在路径的最后一个目录中拥有权限是不够的。它需要在从根目录到路径的最后一个目录的每个目录上都有x 位。
  • @DanielVérité 就是这样!你为什么不把它作为一个答案,这样我就可以结束这个问题了?

标签: linux postgresql database-migration pg-upgrade


【解决方案1】:

这个错误

检查失败:/postgres/9.1/bin 权限被拒绝

之所以发生,是因为需要在层次结构中的每个目录(从根目录到包含这些可执行文件的目录)中设置目录访问权限(x 位)。

这在 Unix.SE 中有详细说明:

Do the parent directory's permissions matter when accessing a subdirectory?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-25
    • 2017-07-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多