我收到错误
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。我还需要做什么?
答案 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