Postgresql:由于权限问题无法创建表空间。

3

我知道类似的问题已经问了很多次,但我找不到适合我的答案。

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

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命令都返回“未找到命令”。例如:selinuxenabled,setenforce 0)。
我已经没有更多的想法了。
有人有建议吗?
2个回答

5

我找到了解决方案!

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

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


1

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

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

您可以在此视频中查看:https://www.youtube.com/watch?v=FQzBgEFkdes

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

希望这可以帮助到您。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接