在postgresql中创建表空间

我正在尝试在postgres中创建一个表空间,但我遇到了所有权问题。我正在使用的命令是:
CREATE TABLESPACE magdat OWNER maggie LOCATION '/home/john/BSTablespace'
我收到错误:
ERROR:  could not set permissions on directory "/home/john/BSTablespace": Operation not permitted
该文件夹属于postgres:postgres,我已经尝试将其更改为maggie,但如果我去了:
chown maggie:postgres /home/john/BSTablespace
我明白了:
chown: invalid user: `maggie:postgres'
为什么用户不存在?如果我列出postgres中的用户,它确实会出现。我有什么想法可能做错了吗?     
已邀请:
我猜测问题在于父目录“/ home / john”的权限。您的主目录可能已设置为只有您的用户可以访问它(即chmod 700)(您的主目录是chmod 700是一件好事,不要更改它)。 做类似的事情: mkdir / BSTablespace chown postgres:postgres / BSTablespace 然后 CREATE TABLESPACE magdat OWNER maggie LOCATION'/ BSTablespace'; 应该工作正常。 关于用户maggie:数据库用户与OS用户不同。这并不是说你在两个名为maggie的地方都没有用户 - 但是你需要在数据库和操作系统中创建用户才能实现这一点。     
当您在Mac上安装Postgres,并尝试使用
PgAdmin
来创建数据库,表空间等时。您需要知道
PgAdmin Utility
在安装postgres数据库和实用程序时创建的
postgres
帐户下运行。
postgres account
_postgres
组的一部分 (
dscacheutil -q group|grep -i postgres
命令将列出与
postgres
帐户关联的组) 最好的做法是在root(
/
)下创建一个用于存放表空间的新目录,(让我们称之为
/postgresdata
然后使用下面的命令使
postgres:_postgres
成为该目录的所有者)
sudo chown postgres:_postgres /postgresdata
这应该为你做。 然后,您可以为每个唯一表空间在
/postgresdata
下创建一个子目录     

要回复问题请先登录注册