PostgreSQL:权限被拒绝+;拥有错误的所有权循环?

PostgreSQL:权限被拒绝+;拥有错误的所有权循环?,postgresql,Postgresql,我正试图像往常一样在本地机器上运行postgresql,但这让我陷入了无法修复的境地。我用macports安装了postgresql91 以下是我通常要运行的三个命令: sudo sysctl -w kern.sysv.shmall=4096 sudo sysctl -w kern.sysv.shmmax=16777216 sudo su postgres -c "/opt/local/lib/postgresql91/bin/postgres -D /opt/local

我正试图像往常一样在本地机器上运行postgresql,但这让我陷入了无法修复的境地。我用macports安装了postgresql91

以下是我通常要运行的三个命令:

    sudo sysctl -w kern.sysv.shmall=4096
    sudo sysctl -w kern.sysv.shmmax=16777216
    sudo su postgres -c "/opt/local/lib/postgresql91/bin/postgres -D /opt/local/var/db/postgresql91/defaultdb -p 55432"
但是,今天它给了我一个错误:

    Nets-Mac-Pro:~ emai$ sudo sysctl -w kern.sysv.shmall=4096
    Password:
    kern.sysv.shmall: 4096 -> 4096
    Nets-Mac-Pro:~ emai$ sudo sysctl -w kern.sysv.shmmax=16777216
    kern.sysv.shmmax: 16777216 -> 16777216
    Nets-Mac-Pro:~ emai$ sudo su postgres -c "/opt/local/lib/postgresql91/bin/postgres -D /opt/local/var/db/postgresql91/defaultdb -p 55432"
    postgres cannot access the server configuration file "/opt/local/var/db/postgresql91/defaultdb/postgresql.conf": Permission denied
当我转到
/opt/local/var/db/postgresql91/
并执行
ls-l
时,会出现以下情况:

drwx------  18 root  wheel  612 Jun 28 12:44 defaultdb
所以我决定将postgres用户添加到wheel组,然后将chmod defaultdb添加到770

drwxrwx---  18 root  wheel  612 Jun 28 12:44 defaultdb
我仍然得到错误:

FATAL:  could not open configuration file "/opt/local/var/db/postgresql91/defaultdb/postgresql.conf": Permission denied
因此,我将文件权限更改为:

-rw-------   1 root  wheel  19170 Jan  7 11:52 postgresql.conf
致:

现在它抱怨当我再次运行命令时:

    Nets-Mac-Pro:~ emai$ sudo su postgres -c "/opt/local/lib/postgresql91/bin/postgres -D /opt/local/var/db/postgresql91/defaultdb -p 55432"
    FATAL:  data directory "/opt/local/var/db/postgresql91/defaultdb" has wrong ownership
    HINT:  The server must be started by the user that owns the data directory.

考虑到文件的文件权限,我不知道我以前是如何运行postgres服务器的。我在哪里可以找到它提示我的
数据
文件夹?有更好的方法解决这个问题吗?

Postgres应该是数据目录的所有者,并且是唯一能够写入数据目录的用户

因此,请:

sudo chown -Rf postgres:postgres /opt/local/var/db/postgresql91/defaultdb
sudo chmod 700 /opt/local/var/db/postgresql91/defaultdb

它应该很好。

Postgres应该是数据目录的所有者,并且是唯一能够写入数据目录的用户

因此,请:

sudo chown -Rf postgres:postgres /opt/local/var/db/postgresql91/defaultdb
sudo chmod 700 /opt/local/var/db/postgresql91/defaultdb

应该没问题。

这行得通吗?我正在使用
/usr/local/pgsql
文件夹。它给出了权限错误,表示无法访问
postgresql.conf
文件。建议有效的medid?,我使用
/usr/local/pgsql
文件夹。它给出了权限错误,表示无法访问
postgresql.conf
文件。建议我