【问题标题】:Postgresql: cannot create tablespace due to permissionsPostgresql:由于权限而无法创建表空间
【发布时间】:2018-02-28 10:30:00
【问题描述】:

我知道有十几次类似的问题,但我找不到适合我的答案。

我有一台全新的 Debian 9 机器,我在上面安装了 Postgresql 9.6 服务器。 我正在尝试创建一个新的表空间,但它失败了。命令:

CREATE TABLESPACE newTableSPace LOCATION '/DATA/PostgreSQL/';

返回以下错误:

ERROR: could not set permissions on directory "/DATA/PostgreSQL": Permission denied
SQL state: 42501

所以,经过几次基础搜索,我已经检查了以下几点:

  • 目录 /DATA/PostgreSQL 存在
  • 它的所有者/组是 postgres:postgres
  • 目录的权限是770
  • 显然没有安装 SELinux(在 Synaptic 中,安装了 libselinux1,但我尝试过的所有 selinux 命令都返回“找不到命令”。示例:selinuxenabledsetenforce 0 em>)。

我的想法不多了。

有人有建议吗?

【问题讨论】:

    标签: postgresql permissions postgresql-9.6 tablespace


    【解决方案1】:

    我刚刚找到了解决方案!

    问题是用户 postgres 的权限不在目录 /DATA/PostgreSQL/ 上,而是在目录 /DATA 上,它根本没有权限(它属于当前用户,权限为 770)。

    我已将此文件夹的权限更改为 775。我想另一种方法是让用户 postgres 属于拥有 DATA 文件夹的组。

    【讨论】:

      【解决方案2】:

      嘿,我刚刚找到了一个可能的解决方案,问题是你必须让每个人都可以访问你要写入的目录。

      1. 右键单击目录“.../targetDirectory”。
      2. 属性>安全>在组/用户名中点击“编辑”
      3. 添加另一个组或用户名,输入“Everyone”并单击“确定”
      4. 如果您需要向该组添加更多权限,请检查权限并按确定。

      你可以在这个视频中看到它:https://www.youtube.com/watch?v=FQzBgEFkdes

      这对我创建表空间并将文件从一个目录复制到另一个目录很有用。

      希望这会有所帮助。

      【讨论】:

        猜你喜欢
        • 2021-02-28
        • 2014-11-26
        • 1970-01-01
        • 2016-07-21
        • 2023-03-10
        • 1970-01-01
        • 1970-01-01
        • 2017-06-20
        • 1970-01-01
        相关资源
        最近更新 更多