PostgreSQL /数据文件的权限应该是什么?

PostgreSQL /数据文件的权限应该是什么?

我从 osX 二进制文件安装了 Postgres 9.3。
当我尝试使用 pg_ctl restart 重新启动时,收到以下错误:

$ pg_ctl restart
pg_ctl: could not open PID file "/Library/PostgreSQL/9.3/data/postmaster.pid": Permission denied

Bryan@bryans-mbp Fri Jun 13 13:41:24 ~   
$ sudo ls -la /Library/PostgreSQL/9.3/data/postmaster.pid  
Password:  
-rw-------  1 postgres  daemon  75 Jun 11 10:36 /Library/PostgreSQL/9.3/data/postmaster.pid  

谁应该拥有这个文件以及其权限应该是什么?

答案1

权限是正确的,因为您希望所有数据文件和其他相关内容都归用户所有postgres。我认为这里的问题是postgres守护进程没有以postgres用户身份运行。

要检查 postgres 守护进程(postmaster)以哪个用户身份运行,请运行:

大多数 *NIX (例如 Solaris):

ps -ef | grep postgres

Linux

ps aux | grep postgres

确保以 root 身份运行:

sudo -u postgres pg_ctl -D /Library/PostgreSQL/9.3/data start

pg_ctl调整和的必要路径sudo

答案2

您可能能够直接切换到 os 级别用户到 postgres 用户:

$ sudo su postgres

然后运行重启命令:

$ pg_ctl restart

相关内容