Creating a tablespace in postgresql

后端 未结 2 1798
遥遥无期
遥遥无期 2021-02-12 19:24

I\'m trying to create a tablespace in postgres, but I\'m getting ownership problems. The command I\'m using is:

CREATE TABLESPACE magdat OWNER maggie LOCATION \'         


        
相关标签:
2条回答
  • 2021-02-12 20:26

    When you install Postgres on a Mac, and are trying to use PgAdmin to create your databases, tablespaces, etc. You need to know that the PgAdmin Utility is running under the postgres account that it created when you installed the postgres database and the utilities.

    The postgres account is part of the _postgres group

    ( dscacheutil -q group|grep -i postgres command will list the group associated with the postgres account)

    The best practice would be to create a new directory under root(/) for housing the tablespaces,(let us call it /postgresdata then make postgres:_postgres the owners of that directory, using the command below)

    sudo chown postgres:_postgres /postgresdata

    This should do it for you. You could then create a subdirectory under /postgresdata for each unique table space

    0 讨论(0)
  • 2021-02-12 20:27

    I would hazard a guess that the problem lies in the permissions of the parent directory "/home/john". Your home directory is probably setup so that only your user has access (i.e chmod 700) to it (it's a good thing for your home directory to be chmod 700, don't change it).

    Doing something like:

    mkdir /BSTablespace
    chown postgres:postgres /BSTablespace
    

    and then

    CREATE TABLESPACE magdat OWNER maggie LOCATION '/BSTablespace';
    

    should work fine.

    Regarding the user maggie: database users are not the same as OS users. That isn't to say that you couldn't have a user in both places named maggie-- but you would need to create the user in both the database and the OS for that to happen.

    0 讨论(0)
提交回复
热议问题