致命:无法创建锁定文件“postmaster.pid”:权限被拒绝

时间:2012-01-10 03:15:49

标签: postgresql

我收到错误

FATAL:  could not create lock file "postmaster.pid": Permission denied

尝试执行命令时

pg_ctl restart --pgdata "D:\Program Files\PostgreSQL\8.3\data"

将postgres用户的完全权限设置为D:\,D:\ Program Files \,D:\ Program Files \ PostgreSQL \和D:\ Program Files \ PostgreSQL \ 8.3 \ data。我还需要做什么?

5 个答案:

答案 0 :(得分:14)

我将对D:\ Program Files \ PostgreSQL \ 8.3 \ data的完全访问权限设置为Users组,现在它可以正常工作。细节是在 http://forumserver.twoplustwo.com/114/pokertracker/cant-connect-db-422617/ (上一篇文章)。

答案 1 :(得分:6)

您必须确保用户postgres有权撰写&执行/ var / run / postgresql

sudo chmod 765 /var/run/postgresql  
sudo chown postgres /var/run/postgresql

由于安装了postgres-xc,我遇到了这个问题,解决方法是删除它。

pg_ctl是用于启动/停止/ etc postgres的最常见(和推荐)方式。

出于某种原因,它不属于我的postgres安装。
在稍微做了一点之后,我安装了包含pg_ctl的postgre-xc postgres-xc将/ var / run / postgresql的所有者从postgres更改为postgres-xc。
这引起了许多关于无法锁定pid文件的麻烦和警告。

所以,我删除了postgres-xc(并将/ var / run / postgresql的所有者还原为postgres)。

我没有使用pg_ctl,而是使用

控制postgres

service postgresql status

/etc/init.d/postgresql status

希望这会对某人有所帮助。

答案 2 :(得分:6)

您需要确保用户postgres对在postgresql.conf文件中配置的postgres data_directory具有写权限。在我的情况下,/var/lib/postgresql/9.5/main/如果没有添加权限,则使用:

chmod u+w /var/lib/postgresql/9.5/main/

答案 3 :(得分:3)

postgresql service已在NETWORK SERVICE中登录,因此您必须使用make data dir(即:"D:\Program Files\PostgreSQL\8.3\data")完全控制NETWORK SERVICE组。

答案 4 :(得分:0)

我刚刚将用户名添加到“ postgres”组中;一切都很好

sudo adduser your-user-name postgres

Ciao